} } if (isset($result_message)) { Display::display_normal_message($result_message); } // --------------------------------------------------- // RETRIEVING THE PERMISSIONS // --------------------------------------------------- $current_group_permissions = array(); $current_group_permissions = get_permissions('group', $group_id); // @todo current group permissions and current role permissions // --------------------------------------------------- // INHERITED PERMISSIONS (group roles) // --------------------------------------------------- $group_course_roles_permissions = get_roles_permissions('group', $group_id, 'course'); $group_platform_roles_permissions = get_roles_permissions('group', $group_id, 'platform'); $inherited_permissions = permission_array_merge($group_course_roles_permissions, $group_platform_roles_permissions); // --------------------------------------------------- // LIMITED OR FULL // --------------------------------------------------- $current_group_permissions = limited_or_full($current_group_permissions); $inherited_permissions = limited_or_full($inherited_permissions); if (api_get_setting('permissions') == 'limited') { $header_array = $rights_limited; } if (api_get_setting('permissions') == 'full') { $header_array = $rights_full; } echo "<form method=\"post\" action=\"" . str_replace('&', '&', $_SERVER['REQUEST_URI']) . "\">"; // --------------------------------------------------- // DISPLAYING THE ROLES LIST
// dit moet ook de rol permissies van rollen die toegekend worden aan een gebruiker // en de rol permissies van rollen die toegekend worden aan de groepen van een gebruiker // omvatten. // NOTE: checken als de rollen brol wel degelijk geactiveerd is voordat we dit allemaal // ophalen. // platform roles that are assigned to the user $current_user_role_permissions_of_user = get_roles_permissions('user', $user_id, 'platform'); $inherited_permissions = permission_array_merge($inherited_permissions, $current_user_role_permissions_of_user); } // ------------------------------------------------------------------ // RETRIEVING THE PERMISSIONS OF THE ROLES OF THE GROUPS OF THE USER // ------------------------------------------------------------------ if (api_get_setting('group_roles') == 'true') { // NOTE: DIT MOET NOG VERDER UITGEWERKT WORDEN foreach ($groups_of_user as $group) { $this_current_group_role_permissions_of_user = get_roles_permissions('user', $user_id); //$inherited_permissions[$tool][]=$permission; } } echo "<form method=\"post\" action=\"" . str_replace('&', '&', $_SERVER['REQUEST_URI']) . "\">"; // --------------------------------------------------- // DISPLAYING THE ROLES LIST // --------------------------------------------------- if (api_get_setting('user_roles') == 'true') { // the list of the roles for the user echo '<strong>' . get_lang('UserRoles') . '</strong><br />'; $current_user_course_roles = get_roles('user', $user_id); $current_user_platform_roles = get_roles('user', $user_id, 'platform'); display_role_list($current_user_course_roles, $current_user_platform_roles); echo '<br />'; }
/** * Checks whether the user is allowed in a specific tool for a specific action * @param $tool the tool we are checking if the user has a certain permission * @param $action the action we are checking (add, edit, delete, move, visibility) * @author Patrick Cool <*****@*****.**>, Ghent University * @author Julio Montoya * @version 1.0 */ function api_is_allowed($tool, $action, $task_id = 0) { $_user = api_get_user_info(); $_course = api_get_course_info(); if (api_is_course_admin()) { return true; } //if (!$_SESSION['total_permissions'][$_course['code']] and $_course) if (is_array($_course) and count($_course) > 0) { require_once api_get_path(SYS_CODE_PATH) . 'permissions/permissions_functions.inc.php'; // Getting the permissions of this user. if ($task_id == 0) { $user_permissions = get_permissions('user', $_user['user_id']); $_SESSION['total_permissions'][$_course['code']] = $user_permissions; } // Getting the permissions of the task. if ($task_id != 0) { $task_permissions = get_permissions('task', $task_id); /* !!! */ $_SESSION['total_permissions'][$_course['code']] = $task_permissions; } //print_r($_SESSION['total_permissions']); // Getting the permissions of the groups of the user //$groups_of_user = GroupManager::get_group_ids($_course['db_name'], $_user['user_id']); //foreach($groups_of_user as $group) // $this_group_permissions = get_permissions('group', $group); // Getting the permissions of the courseroles of the user $user_courserole_permissions = get_roles_permissions('user', $_user['user_id']); // Getting the permissions of the platformroles of the user //$user_platformrole_permissions = get_roles_permissions('user', $_user['user_id'], ', platform'); // Getting the permissions of the roles of the groups of the user //foreach($groups_of_user as $group) // $this_group_courserole_permissions = get_roles_permissions('group', $group); // Getting the permissions of the platformroles of the groups of the user //foreach($groups_of_user as $group) // $this_group_platformrole_permissions = get_roles_permissions('group', $group, 'platform'); } // If the permissions are limited, we have to map the extended ones to the limited ones. if (api_get_setting('permissions') == 'limited') { if ($action == 'Visibility') { $action = 'Edit'; } if ($action == 'Move') { $action = 'Edit'; } } // The session that contains all the permissions already exists for this course // so there is no need to requery everything. //my_print_r($_SESSION['total_permissions'][$_course['code']][$tool]); if (is_array($_SESSION['total_permissions'][$_course['code']][$tool])) { if (in_array($action, $_SESSION['total_permissions'][$_course['code']][$tool])) { return true; } else { return false; } } }