| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- /**
- * Loads a grid of modAccessContexts.
- *
- * @class MODx.grid.AccessContext
- * @extends MODx.grid.Grid
- * @param {Object} config An object of options.
- * @xtype modx-grid-access-context
- */
- MODx.grid.AccessContext = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- id: 'modx-grid-access-context'
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'security/access/getList'
- ,type: config.type || 'modAccessContext'
- ,target: config.context_key
- }
- ,fields: ['id','target','target_name','principal_class','principal','principal_name','authority','policy','policy_name','cls']
- ,type: 'modAccessContext'
- ,paging: true
- ,columns: [
- { header: _('context') ,dataIndex: 'target_name' ,width: 100 }
- ,{ header: _('user_group') ,dataIndex: 'principal_name' ,width: 120 }
- ,{ header: _('authority') ,dataIndex: 'authority' ,width: 50 }
- ,{ header: _('policy') ,dataIndex: 'policy_name' ,width: 175 }
- ]
- ,tbar: [{
- text: _('acl_add')
- ,cls: 'primary-button'
- ,scope: this
- ,handler: this.createAcl
- }]
- });
- MODx.grid.AccessContext.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.grid.AccessContext,MODx.grid.Grid,{
- combos: {}
- ,windows: {}
- ,getMenu: function() {
- var r = this.getSelectionModel().getSelected();
- var p = r.data.cls;
- var m = [];
- if (this.getSelectionModel().getCount() > 1) {
- } else {
- if (p.indexOf('pedit') != -1) {
- m.push({
- text: _('edit')
- ,handler: this.editAcl
- });
- }
- if (p.indexOf('premove') != -1) {
- if (m.length > 0) { m.push('-'); }
- m.push({
- text: _('remove')
- ,handler: this.removeAcl
- });
- }
- }
- if (m.length > 0) {
- this.addContextMenuItem(m);
- }
- }
- ,createAcl: function(itm,e) {
- var r = {
- target: this.config.context_key
- ,principal_class: 'modUserGroup'
- };
- if (!this.windows.create_acl) {
- this.windows.create_acl = MODx.load({
- xtype: 'modx-window-access-context-create'
- ,record: r
- ,listeners: {
- 'success': {fn:function(o) {
- this.refresh();
- },scope:this}
- }
- });
- }
- this.windows.create_acl.fp.getForm().reset();
- this.windows.create_acl.setValues(r);
- this.windows.create_acl.show(e.target);
- }
- ,editAcl: function(itm,e) {
- var r = this.menu.record;
- Ext.applyIf(r,{
- context: r.target
- ,user_group: r.principal
- });
- if (!this.windows.update_acl) {
- this.windows.update_acl = MODx.load({
- xtype: 'modx-window-access-context-update'
- ,acl: r.id
- ,record: r
- ,listeners: {
- 'success': {fn:this.refresh,scope:this}
- }
- });
- }
- this.windows.update_acl.setValues(r);
- this.windows.update_acl.show(e.target);
- }
- ,removeAcl: function(itm,e) {
- MODx.msg.confirm({
- title: _('ugc_remove')
- ,text: _('access_confirm_remove')
- ,url: this.config.url
- ,params: {
- action: 'security/access/removeAcl'
- ,id: this.menu.record.id
- ,type: this.config.type || 'modAccessContext'
- }
- ,listeners: {
- 'success': {fn:this.refresh,scope:this}
- }
- });
- }
- });
- Ext.reg('modx-grid-access-context',MODx.grid.AccessContext);
- MODx.window.CreateAccessContext = function(config) {
- config = config || {};
- var r = config.record;
- Ext.applyIf(config,{
- title: _('ugc_mutate')
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'security/access/addAcl'
- ,type: config.type || 'modAccessContext'
- }
- // ,height: 250
- // ,width: 350
- ,type: 'modAccessContext'
- ,acl: 0
- ,fields: [{
- xtype: 'hidden'
- ,name: 'id'
- ,value: r.id || ''
- },{
- xtype: 'hidden'
- ,name: 'target'
- ,value: r.context || ''
- },{
- xtype: 'hidden'
- ,name: 'principal_class'
- ,value: 'modUserGroup'
- },{
- xtype: 'modx-combo-usergroup'
- ,fieldLabel: _('user_group')
- ,name: 'principal'
- ,hiddenName: 'principal'
- ,anchor: '100%'
- ,value: r.principal || ''
- ,baseParams: {
- action: 'security/group/getList'
- ,combo: true
- }
- },{
- xtype: 'modx-combo-policy'
- ,fieldLabel: _('policy')
- ,name: 'policy'
- ,hiddenName: 'policy'
- ,value: r.policy || ''
- ,anchor: '100%'
- },{
- xtype: 'textfield'
- ,fieldLabel: _('authority')
- ,name: 'authority'
- // ,width: 75
- ,anchor: '100%'
- ,value: r.authority || ''
- }]
- });
- MODx.window.CreateAccessContext.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.window.CreateAccessContext,MODx.Window);
- Ext.reg('modx-window-access-context-create',MODx.window.CreateAccessContext);
- MODx.window.UpdateAccessContext = function(config) {
- config = config || {};
- var r = config.record;
- this.ident = config.ident || 'uactx'+Ext.id();
- Ext.applyIf(config,{
- title: _('ugc_mutate')
- ,baseParams: {
- action: 'security/access/updateAcl'
- ,type: config.type || 'modAccessContext'
- }
- });
- MODx.window.UpdateAccessContext.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.window.UpdateAccessContext,MODx.window.CreateAccessContext);
- Ext.reg('modx-window-access-context-update',MODx.window.UpdateAccessContext);
|