Skip to content

Unable to update users and usergroups after creating them - VM5494:1 Uncaught TypeError: values.permissions.split is not a function #16941

@casparml

Description

@casparml

I created a new User Group and updated the Policy Templates; AdministratorTemplate and ContentBlocksTemplate. I also updated the Access Policies; Administrator, AdminLite, ContentBlocks Full Access and Developer.

After that when going to example.com/manager/?a=security/permission and editing the usergroup Administrator the console logs:

VM6809:1 Uncaught TypeError: values.permissions.split is not a function
    at tpl.compiled (eval at compileTpl (ext-all.js:21:115596), <anonymous>:1:165)
    at Ext.XTemplate.applyTemplate (ext-all.js:21:115667)
    at constructor.getBodyContent (modx.jsgrps-min.js?mv=320pl:33:1852)
    at constructor.getRowClass (modx.jsgrps-min.js?mv=320pl:33:703)
    at S.getRowClass (ext-base.js:21:8903)
    at S.doRender (ext-all.js:21:603215)
    at S.doRender (ext-all.js:21:667997)
    at S.renderRows (ext-all.js:21:612149)
    at S.renderRows (ext-all.js:21:667125)
    at S.renderBody (ext-all.js:21:612225)
tpl.compiled @ VM6809:1
applyTemplate @ ext-all.js:21
getBodyContent @ modx.jsgrps-min.js?mv=320pl:33
getRowClass @ modx.jsgrps-min.js?mv=320pl:33
(anonymous) @ ext-base.js:21
doRender @ ext-all.js:21
doRender @ ext-all.js:21
renderRows @ ext-all.js:21
renderRows @ ext-all.js:21
renderBody @ ext-all.js:21
refresh @ ext-all.js:21
onDataChange @ ext-all.js:21
fire @ ext-all.js:21
fireEvent @ ext-all.js:21
loadRecords @ ext-all.js:21
onRead @ ext-all.js:21
(anonymous) @ ext-all.js:21
handleResponse @ ext-all.js:21
f @ ext-base.js:21
m @ ext-base.js:21
(anonymous) @ ext-base.js:21
setInterval
n @ ext-base.js:21
i @ ext-base.js:21
request @ ext-base.js:21
request @ ext-all.js:21
doRequest @ ext-all.js:21
request @ ext-all.js:21
execute @ ext-all.js:21
load @ ext-all.js:21
MODx.grid.Grid @ modx.jsgrps-min.js?mv=320pl:26
UserGroupBase @ modx.grid.user.group.base.js?mv=320pl:56
UserGroupContext @ modx.grid.user.group.context.js?mv=320pl:122
create @ ext-all.js:21
createComponent @ ext-all.js:21
lookupComponent @ ext-all.js:21
add @ ext-all.js:21
(anonymous) @ ext-all.js:21
each @ ext-base.js:21
add @ ext-all.js:21
initComponent @ ext-all.js:21
initComponent @ ext-all.js:21
Ext.Component @ ext-all.js:21
S @ ext-base.js:21
S @ ext-base.js:21
S @ ext-base.js:21
create @ ext-all.js:21
createComponent @ ext-all.js:21
lookupComponent @ ext-all.js:21
add @ ext-all.js:21
(anonymous) @ ext-all.js:21
each @ ext-base.js:21
add @ ext-all.js:21
initComponent @ ext-all.js:21
initComponent @ ext-all.js:21
initComponent @ ext-all.js:21
Ext.Component @ ext-all.js:21
S @ ext-base.js:21
S @ ext-base.js:21
S @ ext-base.js:21
S @ ext-base.js:21
MODx.Tabs @ modx.jsgrps-min.js?mv=320pl:26
MODx.VerticalTabs @ modx.jsgrps-min.js?mv=320pl:26
create @ ext-all.js:21
createComponent @ ext-all.js:21
lookupComponent @ ext-all.js:21
add @ ext-all.js:21
(anonymous) @ ext-all.js:21
each @ ext-base.js:21
add @ ext-all.js:21
initComponent @ ext-all.js:21
initComponent @ ext-all.js:21
Ext.Component @ ext-all.js:21
S @ ext-base.js:21
S @ ext-base.js:21
S @ ext-base.js:21
create @ ext-all.js:21
createComponent @ ext-all.js:21
lookupComponent @ ext-all.js:21
add @ ext-all.js:21
(anonymous) @ ext-all.js:21
each @ ext-base.js:21
add @ ext-all.js:21
initComponent @ ext-all.js:21
initComponent @ ext-all.js:21
initComponent @ ext-all.js:21
Ext.Component @ ext-all.js:21
S @ ext-base.js:21
S @ ext-base.js:21
S @ ext-base.js:21
S @ ext-base.js:21
MODx.Tabs @ modx.jsgrps-min.js?mv=320pl:26
create @ ext-all.js:21
createComponent @ ext-all.js:21
lookupComponent @ ext-all.js:21
add @ ext-all.js:21
(anonymous) @ ext-all.js:21
each @ ext-base.js:21
add @ ext-all.js:21
initComponent @ ext-all.js:21
initComponent @ ext-all.js:21
initComponent @ ext-all.js:21
Ext.Component @ ext-all.js:21
S @ ext-base.js:21
S @ ext-base.js:21
S @ ext-base.js:21
S @ ext-base.js:21
MODx.FormPanel @ modx.jsgrps-min.js?mv=320pl:26
MODx.panel.UserGroup @ modx.panel.user.group.js?mv=320pl:305
create @ ext-all.js:21
load @ modx.js?mv=f4e30b4e:125
_loadComponents @ modx.jsgrps-min.js?mv=320pl:26
MODx.Component @ modx.jsgrps-min.js?mv=320pl:26
MODx.page.UpdateUserGroup @ update.js?mv=320pl:41
create @ ext-all.js:21
load @ modx.js?mv=f4e30b4e:125
(anonymous) @ manager/?a=security/usergroup/update&id=1:114
(anonymous) @ ext-all.js:21
a @ ext-all.js:21
setInterval
h.delay @ ext-all.js:21
v @ ext-all.js:21
fire @ ext-all.js:21
f @ ext-all.js:21

Some system information:

MODX version:
MODX Revolution 3.2.0-pl (advanced)
Version codename:
Revolution
phpinfo():
PHP Version 8.2.30
Server Time:
11:05:49 AM
Local Time:
11:05:49 AM
Server Offset:
0
ExtJS Version:
3.4.1
Smarty Version:
4.5.6
PHPMailer Version:
6.12.0
MagpieRSS Version:
0.72
Database type:
mysql
Database version:
5.7.44-49-log
Database charset:
utf8mb4
Database name:
ID190723_farmpro
Database server:
ID190723_farmpro.db.webhosting.be
Table prefix:
modx_


I solved the issue by going into example.com/manager/assets/modext/widgets/security/modx.grid.user.group.base.js and on line 83 changing:

{[ values.permissions.split(',').map(item => '<li>' + item.trim() + '</li>').join('') ]}
to:
{[ (values.policyPermissions || []).map(item => '<li>' + item.trim() + '</li>').join('') ]}

On line 96 permissions = record.data.cls, to permissions = record.data.permissions || {},

On line 102 if (permissions.indexOf('pedit') !== -1) { to if (permissions.update) {

On line 108 if (permissions.indexOf('premove') !== -1) { to if (permissions.delete) {

And in the file example.com/core/src/Revolution/Processors/Security/Access/UserGroup/ResourceGroup/GetList.php on line 187 $permissions['edit'] = false; to $permissions['update'] = false;

And ub the file example.com/manager/assets/modext/widgets/security/modx.grid.user.js

on line 62 'cls' to 'permissions'

on line 174 var p = r.data.cls; to var p = r.data.permissions || {};

on line 195 if (p.indexOf('pupdate') != -1) { to if (p.update) {

on line 201 if (p.indexOf('pcopy') != -1) { to if (p.duplicate) {

on line 208 if (p.indexOf('premove') != -1) { to if (p.delete) {

This fixed the issue of not being to update users after creating them and editing usergroup contexts and mediasources.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions