/** * Callback for the "Login Required" settings field. * This ensure all roles are set to have the connections_view_public * capability to ensures all roles can at least view the public entries. * * @access private * @since 0.7.3 * * @param $loginRequired * * @return int */ public static function setAllowPublic($loginRequired) { global $wp_roles; if ($loginRequired) { if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } $roles = $wp_roles->get_names(); foreach ($roles as $role => $name) { cnRole::add($role, 'connections_view_public'); } } return $loginRequired; }
/** * Update the role settings. * * @access private * @since 0.7.5 * @uses current_user_can() * @uses check_admin_referer() * @uses wp_redirect() * @uses get_admin_url() * @uses get_current_blog_id() * @return void */ public static function updateRoleCapabilities() { /** @var $wp_roles WP_Roles */ global $wp_roles; $form = new cnFormObjects(); /* * Check whether user can edit roles */ if (current_user_can('connections_change_roles')) { check_admin_referer($form->getNonce('update_role_settings'), '_cn_wpnonce'); if (isset($_POST['roles'])) { // Cycle thru each role available because checkboxes do not report a value when not checked. foreach ($wp_roles->get_names() as $role => $name) { if (!isset($_POST['roles'][$role])) { continue; } foreach ($_POST['roles'][$role]['capabilities'] as $capability => $grant) { // the administrator should always have all capabilities if ($role == 'administrator') { continue; } if ($grant == 'true') { cnRole::add(esc_attr($role), esc_attr($capability)); } else { cnRole::remove(esc_attr($role), esc_attr($capability)); } } } } if (isset($_POST['reset'])) { cnRole::reset(array_map('esc_attr', $_POST['reset'])); } if (isset($_POST['reset_all'])) { cnRole::reset(); } cnMessage::set('success', 'role_settings_updated'); wp_redirect(get_admin_url(get_current_blog_id(), 'admin.php?page=connections_roles')); exit; } else { cnMessage::set('error', 'capability_roles'); } }