Guest User

Untitled

a guest
Jun 24th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.81 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4. *
  5. * User Role Editor plugin: role editor page
  6. *
  7. */
  8.  
  9. if (!defined('URE_PLUGIN_URL')) {
  10. die; // Silence is golden, direct call is prohibited
  11. }
  12.  
  13. // create roles backup if it's not created yet
  14. ure_makeRolesBackup();
  15.  
  16. if (!isset($ure_currentRole) || !$ure_currentRole) {
  17. if (isset($_REQUEST['user_role']) && $_REQUEST['user_role'] && isset($ure_roles[$_REQUEST['user_role']])) {
  18. $ure_currentRole = $_REQUEST['user_role'];
  19. } else {
  20. $ure_currentRole = $ure_rolesId[count($ure_rolesId) - 1];
  21. }
  22. $ure_currentRoleName = $ure_roles[$ure_currentRole]['name'];
  23. }
  24.  
  25. $youAreAdmin = defined('URE_SHOW_ADMIN_ROLE') && ure_is_admin();
  26.  
  27. $roleDefaultHTML = '<select id="default_user_role" name="default_user_role" width="200" style="width: 200px">';
  28. $roleToCopyHTML = '<select id="user_role_copy_from" name="user_role_copy_from" width="200" style="width: 200px">
  29. <option value="none" selected="selected">'.__('None', 'ure').'</option>';
  30. $roleSelectHTML = '<select id="user_role" name="user_role" onchange="ure_Actions(\'role-change\', this.value);">';
  31. foreach ($ure_roles as $key=>$value) {
  32. $selected1 = ure_optionSelected($key, $ure_currentRole);
  33. $selected2 = ure_optionSelected($key, $defaultRole);
  34. if ($youAreAdmin || $key!='administrator') {
  35. $roleSelectHTML .= '<option value="'.$key.'" '.$selected1.'>'.__($value['name'], 'ure').'</option>';
  36. $roleDefaultHTML .= '<option value="'.$key.'" '.$selected2.'>'.__($value['name'], 'ure').'</option>';
  37. $roleToCopyHTML .= '<option value="'.$key.'" >'.__($value['name'], 'ure').'</option>';
  38. }
  39. }
  40. $roleSelectHTML .= '</select>';
  41. $roleDefaultHTML .= '</select>';
  42. $roleToCopyHTML .= '</select>';
  43.  
  44. $ure_rolesCanDelete = getRolesCanDelete($ure_roles);
  45. if ($ure_rolesCanDelete && count($ure_rolesCanDelete)>0) {
  46. $roleDeleteHTML = '<select id="del_user_role" name="del_user_role" width="200" style="width: 200px">';
  47. foreach ($ure_rolesCanDelete as $key=>$value) {
  48. $roleDeleteHTML .= '<option value="'.$key.'">'.__($value, 'ure').'</option>';
  49. }
  50. $roleDeleteHTML .= '</select>';
  51. } else {
  52. $roleDeleteHTML = '';
  53. }
  54.  
  55. $capabilityRemoveHTML = getCapsToRemoveHTML();
  56.  
  57. ?>
  58.  
  59. <div id="post-body-content" class="has-sidebar-content">
  60. <script language="javascript" type="text/javascript">
  61. <?php
  62. if (is_multisite()) {
  63. ?>
  64.  
  65. function ure_applyToAllOnClick(cb) {
  66. el = document.getElementById('ure_apply_to_all_div');
  67. if (cb.checked) {
  68. el.style.color = '#FF0000';
  69. } else {
  70. el.style.color = '#000000';
  71. }
  72. }
  73. <?php
  74. }
  75. ?>
  76.  
  77. function ure_Actions(action, value) {
  78. if (action=='cancel') {
  79. document.location = '<?php echo URE_WP_ADMIN_URL.'/'.URE_PARENT; ?>?page=user-role-editor.php';
  80. return;
  81. }
  82. var elId = ''; var elInMess = '';
  83. if (action=='addnewrole' || action=='addnewcapability') {
  84. if (action=='addnewrole') {
  85. elId = 'new_user_role';
  86. elInMess = 'Role';
  87. } else {
  88. elId = 'new_user_capability';
  89. elInMess = 'capability';
  90. }
  91. var el = document.getElementById(elId);
  92. value = el.value;
  93. if (value=='') {
  94. alert(elInMess +'<?php _e(' Name can not be empty!','ure');?>');
  95. return false;
  96. }
  97. if (!(/^[a-z$_][\w$]*$/i.test(value))) {
  98. alert(elInMess +'<?php _e(' Name must contain latin characters and digits only!','ure');?>');
  99. return false;
  100. }
  101. } else if (action!='role-change' && action!='capsreadable' && action!='showdeprecatedcaps') {
  102. if (action=='delete') {
  103. actionText = '<?php _e('Delete Role', 'ure'); ?>';
  104. } else if (action=='default') {
  105. actionText = '<?php _e('Change Default Role', 'ure'); ?>';
  106. } else if (action=='reset') {
  107. actionText = '<?php _e('Restore Roles from backup copy. Be careful, backup was created when you started URE 1st time. All changes you made after that will be lost', 'ure'); ?>';
  108. } else if (action=='removeusercapability') {
  109. actionText = '<?php _e('Warning! Be careful - removing critical capability could crash some plugin or other custom code', 'ure'); ?>';
  110. }
  111. if (!confirm(actionText+': '+ "<?php _e('Please confirm to continue', 'ure'); ?>")) {
  112. return false;
  113. }
  114. }
  115. if (action!='update') {
  116. url = '<?php echo URE_WP_ADMIN_URL.'/'.URE_PARENT; ?>?page=user-role-editor.php&action='+ action;
  117. if (action=='delete') {
  118. el = document.getElementById('del_user_role');
  119. value = el.options[el.selectedIndex].value;
  120. } else if (action=='default') {
  121. el = document.getElementById('default_user_role');
  122. value = el.options[el.selectedIndex].value;
  123. } else if (action=='removeusercapability') {
  124. el = document.getElementById('remove_user_capability');
  125. value = el.options[el.selectedIndex].value;
  126. elId = 'removeusercapability';
  127. }
  128. if (value!='' && value!=undefined) {
  129. if (action=='addnewcapability' || action=='removeusercapability') {
  130. url = url +'&'+ elId +'='+ escape(value);
  131. } else {
  132. url = url +'&user_role='+ escape(value);
  133. if (action=='addnewrole') {
  134. el = document.getElementById('user_role_copy_from');
  135. url = url +'&user_role_copy_from='+ el.value;
  136. }
  137. }
  138. }
  139. document.location.href = url;
  140. } else {
  141. document.getElementById('ure-form').submit();
  142. }
  143.  
  144. }
  145.  
  146.  
  147. function ure_onSubmit() {
  148. if (!confirm('<?php echo sprintf(__('Role "%s" update: please confirm to continue', 'ure'), __($ure_roles[$ure_currentRole]['name'], 'ure')); ?>')) {
  149. return false;
  150. }
  151. }
  152.  
  153.  
  154. </script>
  155. <?php
  156. ure_displayBoxStart(__('Select Role and change its capabilities list', 'ure'));
  157. ?>
  158. <div style="float: left;"><?php echo __('Select Role:', 'ure').' '.$roleSelectHTML; ?></div>
  159. <?php
  160. if ($ure_caps_readable) {
  161. $checked = 'checked="checked"';
  162. } else {
  163. $checked = '';
  164. }
  165. ?>
  166. <div style="display:inline;float:right;">
  167. <input type="checkbox" name="ure_caps_readable" id="ure_caps_readable" value="1" <?php echo $checked; ?> onclick="ure_Actions('capsreadable');"/>
  168. <label for="ure_caps_readable"><?php _e('Show capabilities in human readable form', 'ure'); ?></label><br />
  169. <?php
  170. if ($ure_show_deprecated_caps) {
  171. $checked = 'checked="checked"';
  172. } else {
  173. $checked = '';
  174. }
  175. ?>
  176. <input type="checkbox" name="ure_show_deprecated_caps" id="ure_show_deprecated_caps" value="1" <?php echo $checked; ?> onclick="ure_Actions('showdeprecatedcaps');"/>
  177. <label for="ure_show_deprecated_caps"><?php _e('Show deprecated capabilities', 'ure'); ?></label>
  178. </div>
  179.  
  180. <?php
  181. if (is_multisite()) {
  182. $hint = __('If checked, then apply action to ALL sites of this Network');
  183. if ($ure_apply_to_all) {
  184. $checked = 'checked="checked"';
  185. $fontColor = 'color:#FF0000;';
  186. } else {
  187. $checked = '';
  188. $fontColor = '';
  189. }
  190. ?>
  191. <div style="float: right; margin-left:10px; margin-right: 20px; <?php echo $fontColor;?>" id="ure_apply_to_all_div"><input type="checkbox" name="ure_apply_to_all" id="ure_apply_to_all" value="1" <?php echo $checked; ?> title="<?php echo $hint;?>" onclick="ure_applyToAllOnClick(this)"/>
  192. <label for="ure_apply_to_all" title="<?php echo $hint;?>"><?php _e('Apply to All Sites', 'ure');?></label>
  193. </div>
  194. <?php
  195. }
  196. ?>
  197. <br/><br/><hr/>
  198. <table class="form-table" style="clear:none;" cellpadding="0" cellspacing="0">
  199. <tr>
  200. <td style="vertical-align:top;">
  201. <?php
  202. $deprecatedCaps = get_deprecated_caps();
  203. $quant = count($ure_fullCapabilities);
  204. $quantInColumn = (int) $quant/3;
  205. $quantInCell = 0;
  206. foreach( $ure_fullCapabilities as $capability) {
  207. if (!$ure_show_deprecated_caps && isset($deprecatedCaps[$capability['inner']])) {
  208. $input_type = 'hidden';
  209. } else {
  210. $input_type = 'checkbox';
  211. }
  212. if (isset($deprecatedCaps[$capability['inner']])) {
  213. $labelStyle = 'style="color:#BBBBBB;"';
  214. } else {
  215. $labelStyle = '';
  216. }
  217. $checked = '';
  218. if (isset($ure_roles[$ure_currentRole]['capabilities'][$capability['inner']])) {
  219. $checked = 'checked="checked"';
  220. }
  221. $cap_id = str_replace(' ', URE_SPACE_REPLACER, $capability['inner']);
  222. ?>
  223. <input type="<?php echo $input_type;?>" name="<?php echo $cap_id; ?>" id="<?php echo $cap_id; ?>" value="<?php echo $capability['inner']; ?>" <?php echo $checked; ?>/>
  224. <?php
  225. if ($input_type=='checkbox') {
  226. if ($ure_caps_readable) {
  227. $capInd = 'human';
  228. $capIndAlt = 'inner';
  229. } else {
  230. $capInd = 'inner';
  231. $capIndAlt = 'human';
  232. }
  233. ?>
  234. <label for="<?php echo $cap_id; ?>" title="<?php echo $capability[$capIndAlt]; ?>" <?php echo $labelStyle;?> ><?php echo $capability[$capInd]; ?></label> <?php echo capabilityHelpLink($capability['inner']); ?><br/>
  235. <?php
  236. $quantInCell++;
  237. }
  238. if ($quantInCell>=$quantInColumn) {
  239. $quantInCell = 0;
  240. echo '</td>
  241. <td style="vertical-align:top;">';
  242. }
  243. }
  244. ?>
  245. </td>
  246. </tr>
  247. </table>
  248. <hr/>
  249. <input type="hidden" name="object" value="role" />
  250. <div class="submit" style="padding-top: 0px;">
  251. <div style="float:left; padding-bottom: 10px;">
  252. <input type="submit" name="submit" value="<?php _e('Update', 'ure'); ?>" title="<?php _e('Save Changes', 'ure'); ?>" />
  253. <input type="button" name="cancel" value="<?php _e('Cancel', 'ure') ?>" title="<?php _e('Cancel not saved changes','ure');?>" onclick="ure_Actions('cancel');"/>
  254. </div>
  255. <div style="float:right; padding-bottom: 10px;">
  256. <input type="button" name="default" value="<?php _e('Reset', 'ure') ?>" title="<?php _e('Restore Roles from backup copy','ure');?>" onclick="ure_Actions('reset');"/>
  257. </div>
  258. </div>
  259. <?php
  260. ure_displayBoxEnd();
  261. ?>
  262. </div>
  263. <div style="max-width: 800px;">
  264. <?php
  265. $boxStyle = 'width: 330px; min-width:240px;margin-right: 10px;';
  266. ure_displayBoxStart(__('Add New Role', 'ure'), $boxStyle); ?>
  267. <div class="ure-bottom-box-input">
  268. <label for="new_user_role"><?php echo __('Name: ', 'ure'); ?></label>
  269. <input type="text" name="new_user_role" id="new_user_role" size="25"/>
  270. </div>
  271. <div class="ure-bottom-box-input">
  272. <?php echo __('Make copy of: ', 'ure').$roleToCopyHTML; ?>
  273. </div>
  274. <div class="submit" style="margin-left: 0; margin-right: 0; margin-bottom: 0; padding: 0; width: 100%; text-align: center;">
  275. <input type="button" name="addnewrole" value="<?php _e('Add', 'ure') ?>" title="<?php _e('Add New User Role','ure');?>" onclick="ure_Actions('addnewrole');" />
  276. </div>
  277. <?php
  278. ure_displayBoxEnd();
  279. ure_displayBoxStart(__('Default Role for New User', 'ure'), $boxStyle); ?>
  280. <div class="ure-bottom-box-input">
  281. <?php echo $roleDefaultHTML; ?>
  282. </div>
  283. <div class="submit" style="margin-left: 0; margin-right: 0; margin-bottom: 0; padding: 0; width: 100%; text-align: center;">
  284. <input type="button" name="default" value="<?php _e('Change', 'ure') ?>" title="<?php _e('Set as Default User Role','ure');?>" onclick="ure_Actions('default');" />
  285. </div>
  286. <?php
  287. ure_displayBoxEnd();
  288. if ($roleDeleteHTML) {
  289. ure_displayBoxStart(__('Delete Role', 'ure'), $boxStyle); ?>
  290. <div class="ure-bottom-box-input">
  291. <?php echo $roleDeleteHTML; ?>
  292. </div>
  293. <div class="submit" style="margin-left: 0; margin-right: 0; margin-bottom: 0; padding: 0; width: 100%; text-align: center;">
  294. <input type="button" name="deleterole" value="<?php _e('Delete', 'ure') ?>" title="<?php _e('Delete User Role','ure');?>" onclick="ure_Actions('delete');" />
  295. </div>
  296. <?php
  297. ure_displayBoxEnd();
  298. }
  299. ure_displayBoxStart(__('Add New Capability', 'ure'), $boxStyle); ?>
  300. <div class="ure-bottom-box-input">
  301. <input type="text" name="new_user_capability" id="new_user_capability" size="25"/>
  302. </div>
  303. <div class="submit" style="margin-left: 0; margin-right: 0; margin-bottom: 0; padding: 0; width: 100%; text-align: center;">
  304. <input type="button" name="addnewcapability" value="<?php _e('Add', 'ure') ?>" title="<?php _e('Add New Capability','ure');?>" onclick="ure_Actions('addnewcapability');" />
  305. </div>
  306. <?php
  307. ure_displayBoxEnd();
  308. if ($capabilityRemoveHTML) {
  309. ure_displayBoxStart(__('Remove Capability', 'ure'), $boxStyle); ?>
  310. <div class="ure-bottom-box-input">
  311. <?php echo $capabilityRemoveHTML; ?>
  312. </div>
  313. <div class="submit" style="margin-left: 0; margin-right: 0; margin-bottom: 0; padding: 0; width: 100%; text-align: center;">
  314. <input type="button" name="removecapability" value="<?php _e('Remove', 'ure') ?>" title="<?php _e('Remove User Capability','ure');?>" onclick="ure_Actions('removeusercapability');" />
  315. </div>
  316. <?php
  317. ure_displayBoxEnd();
  318. }
  319.  
  320. ?>
  321. </div>
Add Comment
Please, Sign In to add comment