Skip to content

Commit b0cb798

Browse files
committed
manager (add) add check user and resource groups
1 parent 504fd57 commit b0cb798

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

manager/frames/1.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@
143143
MODX_MANAGER_URL: '<?= MODX_MANAGER_URL ?>',
144144
user: {
145145
role: <?= (int)$user['role'] ?>,
146-
username: "<?= html_escape($user['username'], $modx->config['modx_charset']) ?>"
146+
username: "<?= html_escape($user['username'], $modx->config['modx_charset']) ?>",
147+
groups: <?= json_encode($modx->getUserDocGroups()) ?>
147148
},
148149
config: {
149150
mail_check_timeperiod: <?= $modx->config['mail_check_timeperiod'] ?>,

manager/media/style/default/js/modx.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,15 @@
749749
return true;
750750
} else {
751751
var roles = this.dataset.roles + (this.parentNode.parentNode.id !== 'treeRoot' ? this.parentNode.parentNode.previousSibling.dataset.roles : '');
752-
var draggable = roles && modx.user.role !== 1 ? roles.split(',').map(Number).indexOf(modx.user.role) > -1 : true;
752+
var checked_group = false;
753+
if(roles != '') {
754+
checked_group = roles.split(',').map(Number).filter(function(role) {
755+
return ~modx.user.groups.indexOf(parseInt(role));
756+
}).length;
757+
}else {
758+
checked_group = true;
759+
}
760+
var draggable = roles && modx.user.role !== 1 ? checked_group : true;
753761
modx.tree.itemToChange = this.dataset.id || this.parentNode.id.replace('node', '');
754762
modx.tree.selectedObjectName = this.dataset.titleEsc;
755763
if (draggable) {
@@ -886,7 +894,15 @@
886894
},
887895
ondragupdate: function(a, id, parent, menuindex) {
888896
var roles = a.dataset.roles + (a.parentNode.parentNode.id !== 'treeRoot' ? a.parentNode.parentNode.previousSibling.dataset.roles : '');
889-
if (!(roles && modx.user.role !== 1 ? roles.split(',').map(Number).indexOf(modx.user.role) > -1 : true)) {
897+
var checked_group = false;
898+
if(roles != '') {
899+
checked_group = roles.split(',').map(Number).filter(function(role) {
900+
return ~modx.user.groups.indexOf(parseInt(role));
901+
}).length;
902+
}else {
903+
var checked_group = true;
904+
}
905+
if (!(roles && modx.user.role !== 1 ? checked_group : true)) {
890906
alert(modx.lang.error_no_privileges);
891907
modx.tree.restoreTree();
892908
return;

manager/media/style/default/js/modx.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)