permission.class.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. /*
  3. * This file is part of MODX Revolution.
  4. *
  5. * Copyright (c) MODX, LLC. All Rights Reserved.
  6. *
  7. * For complete copyright and license information, see the COPYRIGHT and LICENSE
  8. * files found in the top-level directory of this distribution.
  9. */
  10. /**
  11. * Loads the access permissions page
  12. *
  13. * @package modx
  14. * @subpackage manager.controllers
  15. */
  16. class SecurityPermissionManagerController extends modManagerController {
  17. /**
  18. * Check for any permissions or requirements to load page
  19. * @return bool
  20. */
  21. public function checkPermissions() {
  22. return $this->modx->hasPermission('access_permissions');
  23. }
  24. /**
  25. * Register custom CSS/JS for the page
  26. * @return void
  27. */
  28. public function loadCustomCssJs() {
  29. $mgrUrl = $this->modx->getOption('manager_url',null,MODX_MANAGER_URL);
  30. $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.grid.access.policy.js');
  31. $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.grid.access.policy.template.js');
  32. $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.grid.user.js');
  33. $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.panel.user.group.js');
  34. $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.tree.user.group.js');
  35. $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.grid.role.js');
  36. $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.panel.groups.roles.js');
  37. $canListUserGroups = $this->modx->hasPermission('usergroup_view') ? 1 : 0;
  38. $canListRoles = $this->modx->hasPermission('view_role') ? 1 : 0;
  39. $canListPolicies = $this->modx->hasPermission('policy_view') ? 1 : 0;
  40. $canListPolicyTemplates = $this->modx->hasPermission('policy_template_view') ? 1 : 0;
  41. $canEditUser = $this->modx->hasPermission('usergroup_user_edit') ? 1 : 0;
  42. $canListUser = $this->modx->hasPermission('usergroup_user_list') ? 1 : 0;
  43. $canAddUserGroup = $this->modx->hasPermission('usergroup_new') ? 1 : 0;
  44. $canEditUserGroup = $this->modx->hasPermission('usergroup_edit') ? 1 : 0;
  45. $canDeleteUserGroup = $this->modx->hasPermission('usergroup_delete') ? 1 : 0;
  46. $this->addHtml('<script type="text/javascript">'
  47. .'MODx.perm.usergroup_view = '.$canListUserGroups.';'
  48. .'MODx.perm.view_role = '.$canListRoles.';'
  49. .'MODx.perm.policy_view = '.$canListPolicies.';'
  50. .'MODx.perm.policy_template_view = '.$canListPolicyTemplates.';'
  51. .'MODx.perm.usergroup_user_edit = '.$canEditUser.';'
  52. .'MODx.perm.usergroup_user_list = '.$canListUser.';'
  53. .'MODx.perm.usergroup_new = '.$canAddUserGroup.';'
  54. .'MODx.perm.usergroup_edit = '.$canEditUserGroup.';'
  55. .'MODx.perm.usergroup_delete = '.$canDeleteUserGroup.';'
  56. .'</script>');
  57. $this->addHtml("<script>
  58. Ext.onReady(function() {
  59. MODx.add('modx-page-groups-roles');
  60. });</script>");
  61. $this->addJavascript($mgrUrl.'assets/modext/sections/security/permissions/list.js');
  62. }
  63. /**
  64. * Custom logic code here for setting placeholders, etc
  65. * @param array $scriptProperties
  66. * @return mixed
  67. */
  68. public function process(array $scriptProperties = array()) {}
  69. /**
  70. * Return the pagetitle
  71. *
  72. * @return string
  73. */
  74. public function getPageTitle() {
  75. return $this->modx->lexicon('user_group_management');
  76. }
  77. /**
  78. * Return the location of the template file
  79. * @return string
  80. */
  81. public function getTemplateFile() {
  82. return '';
  83. }
  84. /**
  85. * Specify the language topics to load
  86. * @return array
  87. */
  88. public function getLanguageTopics() {
  89. return array('user','access','policy','context');
  90. }
  91. /**
  92. * Get the Help URL
  93. * @return string
  94. */
  95. public function getHelpUrl() {
  96. return 'Security';
  97. }
  98. }