Dotclear

source: admin/js/_users.js @ 860:e6db669b069f

Revision 860:e6db669b069f, 1.1 KB checked in by JcDenis, 12 years ago (diff)

Fixes a CSRF on users deletion.
Cleaned code on users manager, fixes #1200

Line 
1$(function() {
2     $('.checkboxes-helpers').each(function() {
3          dotclear.checkboxesHelpers(this);
4     });
5     $('#form-users').submit(function() {
6          var action = $(this).find('select[name="action"]').val();
7          var user_ids = new Array();
8          var nb_posts = new Array();
9          var i;
10          var msg_cannot_delete = false;
11         
12          $(this).find('input[name="users[]"]').each(function() {
13               user_ids.push(this);
14          });
15          $(this).find('input[name="nb_post[]"]').each(function() {
16               nb_posts.push(this.value);
17          });
18         
19          if (action == 'deleteuser') {
20               for (i=0; i<user_ids.length; i++) {
21                    if (nb_posts[i] > 0) {
22                         if (user_ids[i].checked == true) {
23                              msg_cannot_delete = true;
24                              user_ids[i].checked = false;
25                         }
26                    }
27               }
28               if (msg_cannot_delete == true) {
29                    alert(dotclear.msg.cannot_delete_users);
30               }
31          }
32         
33          var selectfields = 0;
34          for (i=0; i<user_ids.length; i++) {
35               selectfields += user_ids[i].checked;
36          }
37         
38          if (selectfields == 0) {
39               return false;
40          }
41         
42          if (action == 'deleteuser') {
43               return window.confirm(dotclear.msg.confirm_delete_user.replace('%s',$('input[name="users[]"]:checked').size()));
44          }
45         
46          return true;
47     });
48});
Note: See TracBrowser for help on using the repository browser.

Sites map