Changeset 688317
- Timestamp:
- 03/28/2013 08:41:13 AM (13 years ago)
- Location:
- developer-mode/tags/0.4
- Files:
-
- 3 deleted
- 3 edited
- 8 copied
-
. (copied) (copied from developer-mode/trunk)
-
developer-mode.php (copied) (copied from developer-mode/trunk/developer-mode.php) (2 diffs)
-
lib/admin.php (copied) (copied from developer-mode/trunk/lib/admin.php) (3 diffs)
-
lib/adminmenupage/adminmenu.php (modified) (1 diff)
-
lib/adminmenupage/options.php (copied) (copied from developer-mode/trunk/lib/adminmenupage/options.php) (3 diffs)
-
lib/adminmenupage/plugins.php (modified) (1 diff)
-
lib/functions.php (copied) (copied from developer-mode/trunk/lib/functions.php)
-
lib/helper/roles.php (modified) (2 diffs)
-
lib/roles.php (copied) (copied from developer-mode/trunk/lib/roles.php)
-
readme.txt (copied) (copied from developer-mode/trunk/readme.txt) (2 diffs)
-
screenshot-1.jpg (deleted)
-
screenshot-2.jpg (deleted)
-
screenshot-3.jpg (deleted)
-
uninstall.php (copied) (copied from developer-mode/trunk/uninstall.php)
Legend:
- Unmodified
- Added
- Removed
-
developer-mode/tags/0.4/developer-mode.php
r672668 r688317 3 3 Plugin Name: Developer Mode 4 4 Description: Limit access to the WordPress admin panel for your clients. Block functionality like updating plugins and viewing menu items for administrators, while keeping all these options for the developer users. The developer mode plugin automatically adds a developer user role, allowing you to keep in control of the entire system while making sure your clients can only use what they need. 5 Version: 0. 3.25 Version: 0.4 6 6 Author: Jesper van Engelen 7 7 Author URI: http://www.jepps.nl … … 10 10 11 11 // Plugin information 12 define('JWDM_VERSION', '0. 3.2');12 define('JWDM_VERSION', '0.4'); 13 13 14 14 // Paths -
developer-mode/tags/0.4/lib/admin.php
r666383 r688317 17 17 // Filters 18 18 add_filter('all_plugins', array(&$this, 'filter_all_plugins')); 19 add_filter('user_has_cap', array(&$this, 'filter_user_has_cap'), 999, 3); 20 add_filter('editable_roles', array(&$this, 'filter_editable_roles'), 999); 19 21 } 20 22 … … 39 41 wp_register_style('jwdm_admin', JWDM_URL . '/public/css/admin.css'); 40 42 wp_enqueue_style('jwdm_admin'); 43 44 // Scripts 45 wp_register_script('jwdm-admin', JWDM_URL . '/public/js/admin.js', array('jquery')); 46 wp_enqueue_script('jquery'); 47 wp_enqueue_script('jwdm-admin'); 41 48 } 42 49 … … 107 114 } 108 115 116 /** 117 * Filter: editable_roles 118 */ 119 public function filter_editable_roles($roles) 120 { 121 $options = get_option('jwdm_options'); 122 123 if ($options['prevent_developeruser_edit'] && isset($roles['developer'])) { 124 $user = wp_get_current_user(); 125 126 if (is_object($user) && !empty($user->ID)) { 127 if (JWDM_Helper_Roles::get_user_role($user->ID) != 'developer') { 128 unset($roles['developer']); 129 } 130 } 131 } 132 133 return $roles; 134 } 135 136 137 /** 138 * Filter: user_has_cap 139 */ 140 public function filter_user_has_cap($allcaps, $caps, $args) 141 { 142 $options = get_option('jwdm_options'); 143 144 if (!$options['prevent_developeruser_edit']) { 145 return $allcaps; 146 } 147 148 // Check role 149 $user = wp_get_current_user(); 150 151 if (!is_object($user) || empty($user->ID) || JWDM_Helper_Roles::get_user_role($user->ID) == 'developer') { 152 return $allcaps; 153 } 154 155 // Make sure the requested capability and the user ID are set 156 if (!$args[0] || !in_array($args[0], array('edit_user', 'delete_user')) || !$args[1] || !$args[2]) { 157 return $allcaps; 158 } 159 160 $access = JWDM_Helper_Roles::get_user_role($args[2]) == 'developer' ? false : true; 161 162 foreach ($caps as $index => $cap) { 163 $allcaps[$cap] = $access; 164 } 165 166 return $allcaps; 167 } 168 109 169 /************************ 110 170 * Main functionality -
developer-mode/tags/0.4/lib/adminmenupage/adminmenu.php
r599669 r688317 138 138 <p><?php _e('You have the option to hide menu items from being displayed when a non-developer is logged in. Please check the boxes for the pages that you want to hide when anybody outside the Developer user group (for example, your client) is logged in.', 'developermode'); ?></p> 139 139 140 <p> 141 <a href="#jwdm-adminmenu-menuitems" class="jwdm-list-checkall" title="<?php esc_attr_e('Check all', 'developermode'); ?>"><?php _e('Check all', 'developermode'); ?></a> 142 - 143 <a href="#jwdm-adminmenu-menuitems" class="jwdm-list-uncheckall" title="<?php esc_attr_e('Uncheck all', 'developermode'); ?>"><?php _e('Uncheck all', 'developermode'); ?></a> 144 - 145 <a href="#jwdm-adminmenu-menuitems" class="jwdm-list-toggleall" title="<?php esc_attr_e('Toggle all', 'developermode'); ?>"><?php _e('Toggle all', 'developermode'); ?></a> 146 </p> 147 140 148 <ul id="jwdm-adminmenu-menuitems"> 141 149 -
developer-mode/tags/0.4/lib/adminmenupage/options.php
r666383 r688317 36 36 { 37 37 // Settings sections 38 add_settings_section('jwdm_users', __('Users', 'developermode'), array(&$this, 'section_users'), 'developermode'); 38 39 add_settings_section('jwdm_updates', __('Updates', 'developermode'), array(&$this, 'section_updates'), 'developermode'); 39 40 add_settings_section('jwdm_adminbar', __('Admin bar', 'developermode'), array(&$this, 'section_adminbar'), 'developermode'); 40 41 41 42 // Settings fields 43 add_settings_field('jwdm_prevent_developeruser_edit', __('Actively prevent developer user editing', 'developermode'), array(&$this, 'field_prevent_developeruser_edit'), 'developermode', 'jwdm_users'); 42 44 add_settings_field('jwdm_disable_core_update', __('Disable core update', 'developermode'), array(&$this, 'field_disable_core_update'), 'developermode', 'jwdm_updates'); 43 45 add_settings_field('jwdm_disable_plugin_update', __('Disable plugin update', 'developermode'), array(&$this, 'field_disable_plugin_update'), 'developermode', 'jwdm_updates'); … … 50 52 ***********************/ 51 53 54 public function section_users() {} 52 55 public function section_updates() {} 53 56 public function section_adminbar() {} … … 56 59 * Settings fields 57 60 ***********************/ 61 62 /** 63 * Field: Actively prevent developer user editing 64 */ 65 public function field_prevent_developeruser_edit() 66 { 67 $options = get_option('jwdm_options'); 68 ?> 69 <input type="checkbox" name="jwdm_options[prevent_developeruser_edit]" value="1" <?php checked($options['prevent_developeruser_edit']); ?> /> 70 <span class="description"> 71 <?php _e('By checking this box, you can prevent anyone that does not have the developer role from creating, editing or deleting users with the developer role.', 'developermode'); ?> 72 <br/> 73 <?php _e('<strong>Plugin/theme developers only</strong>: To change these permissions per role, please leave this box unchecked and user the <code>editable_roles</code> filter.', 'developermode'); ?> 74 </span> 75 <?php 76 } 58 77 59 78 /** -
developer-mode/tags/0.4/lib/adminmenupage/plugins.php
r599669 r688317 124 124 <p><?php _e('You have the option to hide plugins from being displayed on the plugins page when a non-developer is logged in. Please check the boxes for the plugins that you want to hide from the plugin overview when anybody outside the Developer user group (for example, your client) is logged in.', 'developermode'); ?></p> 125 125 126 <ul> 126 <p> 127 <a href="#jwdm-plugins-plugins" class="jwdm-list-checkall" title="<?php esc_attr_e('Check all', 'developermode'); ?>"><?php _e('Check all', 'developermode'); ?></a> 128 - 129 <a href="#jwdm-plugins-plugins" class="jwdm-list-uncheckall" title="<?php esc_attr_e('Uncheck all', 'developermode'); ?>"><?php _e('Uncheck all', 'developermode'); ?></a> 130 - 131 <a href="#jwdm-plugins-plugins" class="jwdm-list-toggleall" title="<?php esc_attr_e('Toggle all', 'developermode'); ?>"><?php _e('Toggle all', 'developermode'); ?></a> 132 </p> 133 134 <ul id="jwdm-plugins-plugins"> 127 135 128 136 <?php -
developer-mode/tags/0.4/lib/helper/roles.php
r599669 r688317 8 8 class JWDM_Helper_Roles 9 9 { 10 10 11 /** 11 12 * Get a list of all available roles from the WP_Roles object … … 54 55 return $developerusers_query->get_total(); 55 56 } 57 58 /** 59 * Get the highest hierarchy role for a user 60 * 61 * @param int $userid ID of the user to get the role for 62 * @return string User role name 63 */ 64 public static function get_user_role($userid) 65 { 66 $userid = intval($userid); 67 68 if (!$userid) { 69 return false; 70 } 71 72 $user = get_user_by('id', $userid); 73 74 return array_shift($user->roles); 75 } 76 56 77 } 57 78 ?> -
developer-mode/tags/0.4/readme.txt
r672668 r688317 7 7 Requires at least: 3.1 8 8 Tested up to: 3.5.1 9 Stable tag: 0. 3.29 Stable tag: 0.4 10 10 11 11 Limit access to the WordPress admin panel for your clients. Block functionality like updating plugins and viewing menu items for administrators, while keeping all these options for the developer users. The developer mode plugin automatically adds a developer user role, allowing you to keep in control of the entire system while making sure your clients can only use what they need. … … 55 55 == Changelog == 56 56 57 = 0.4 = 58 59 * Optional prevention of managing developer users by non-developer users (i.e. administrators, editors, etc. can not create, edit or delete users with the developer role) 60 * Added check all/uncheck all/toggle all functionality to the Admin Menu and Plugins pages 61 * Moved screenshots to assets folder 62 57 63 = 0.3.2 = 58 64
Note: See TracChangeset
for help on using the changeset viewer.