/** * * Checks if this role is a reserved role * * @return boolean True if the current role is a reserved role */ public function isReservedRole() { return ElggRole::isReservedRoleName($this->name); }
/** * Processes the configuration files and generates the appropriate ElggRole objects. * * If, for any role definition, there is an already existing role with the same name, * the role permissions will be updated for the given role object. * If there is no previously existing, corresponding role object, it will be created now. * * @param array $roles_array The roles configuration array */ function roles_create_from_config($roles_array) { $options = array('type' => 'object', 'subtype' => 'role'); $roles = elgg_get_entities($options); $existing_roles = array(); foreach ($roles as $role) { $existing_roles[$role->name] = $role; } foreach ($roles_array as $rname => $rdetails) { $current_role = $existing_roles[$rname]; if (elgg_instanceof($current_role, 'object', 'role')) { // Update existing role obejct $current_role->title = elgg_echo($rdetails['title']); $current_role->extends = $rdetails['extends']; $current_role->permissions = serialize($rdetails['permissions']); $current_role->save(); } else { // Create new role object $new_role = new ElggRole(); $new_role->title = elgg_echo($rdetails['title']); $new_role->owner_guid = elgg_get_logged_in_user_guid(); $new_role->container_guid = $new_role->owner_guid; $new_role->access_id = ACCESS_PUBLIC; if (!$new_role->save()) { error_log('Could not create new role $rname'); } else { // Add metadata $new_role->name = $rname; $new_role->extends = $rdetails['extends']; $new_role->permissions = serialize($rdetails['permissions']); } } } }
if (!$current_role && roles_get_role_by_name($name)) { register_error(elgg_echo(PLUGIN_ID . ':edit:duplicate', array($name))); forward(REFERER); } if (elgg_instanceof($current_role, 'object', 'role')) { // Update existing role obejct $current_role->title = $title; $current_role->extends = $ordered_extends; if ($current_role->save()) { system_message(elgg_echo(PLUGIN_ID . ':edit:success', array($name))); $forward_url = $current_role->getURL(); } } else { $site = elgg_get_site_entity(); // Create new role object $new_role = new \ElggRole(); $new_role->title = $title; $new_role->owner_guid = elgg_get_logged_in_user_guid(); $new_role->container_guid = $site->owner_guid; $new_role->access_id = ACCESS_PUBLIC; if (!$new_role->save()) { error_log('Could not create new role $name'); register_error(elgg_echo(PLUGIN_ID . ':edit:error', array($name))); $forward_url = REFERER; } else { // Add metadata $new_role->name = $name; $new_role->extends = $ordered_extends; $new_role->permissions = serialize(array()); system_message(elgg_echo(PLUGIN_ID . ':edit:success', array($name))); $forward_url = $new_role->getURL();