User: replace 'status' with roles

pull/3959/head
Julio 4 years ago
parent 87c40c90d6
commit 59256ea1d7
  1. 14
      public/main/admin/dashboard_add_courses_to_user.php
  2. 18
      public/main/admin/dashboard_add_sessions_to_user.php
  3. 19
      public/main/admin/dashboard_add_users_to_user.php
  4. 127
      public/main/inc/lib/api.lib.php

@ -29,14 +29,16 @@ $tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_
// initializing variables
$user_id = (int) ($_GET['user']);
$user_info = api_get_user_info($user_id);
$user_anonymous = api_get_anonymous_id();
$current_user_id = api_get_user_id();
$user = api_get_user_entity($user_id);
$isSessionAdmin = api_is_session_admin($user);
// setting the name of the tool
if (UserManager::is_admin($user_id)) {
$tool_name = get_lang('AssignCoursesToAdministrationistrator');
} elseif (SESSIONADMIN == $user_info['status']) {
$tool_name = get_lang('Assign courses to platform\'s administrator');
} elseif ($isSessionAdmin) {
$tool_name = get_lang('Assign courses to session\'s administrator');
} else {
$tool_name = get_lang('Assign courses to HR manager');
@ -176,7 +178,7 @@ $actionsLeft .= '<a href="dashboard_add_sessions_to_user.php?user='.$user_id.'">
echo $html = Display::toolbarAction('toolbar-dashboard', [$actionsLeft]);
echo Display::page_header(
sprintf(get_lang('Assign courses to %s'), api_get_person_name($user_info['firstname'], $user_info['lastname'])),
sprintf(get_lang('Assign courses to %s'), UserManager::formatUserFullName($user)),
null,
'h3'
);
@ -272,8 +274,8 @@ if (!empty($msg)) {
<div class="col-md-4">
<h5><?php
if (UserManager::is_admin($user_id)) {
echo get_lang('AssignedCoursesListToAdministrationistrator');
} elseif (SESSIONADMIN == $user_info['status']) {
echo get_lang('Assigned courses list to platform administrator');
} elseif ($isSessionAdmin) {
echo get_lang('Assigned courses list to sessions administrator');
} else {
echo get_lang('Courses assigned to the HR manager');

@ -30,16 +30,18 @@ $tbl_session_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL
// Initializing variables
$user_id = isset($_GET['user']) ? (int) ($_GET['user']) : null;
$user_info = api_get_user_info($user_id);
$user_anonymous = api_get_anonymous_id();
$current_user_id = api_get_user_id();
$user = api_get_user_entity($user_id);
$isSessionAdmin = api_is_session_admin($user);
$ajax_search = false;
// Setting the name of the tool
if (UserManager::is_admin($user_id)) {
$tool_name = get_lang('AssignSessionsToAdministrationistrator');
} elseif (SESSIONADMIN == $user_info['status']) {
$tool_name = get_lang('assign sessions to sessions administrator');
$tool_name = get_lang('Assign sessions to platform administrator');
} elseif ($isSessionAdmin) {
$tool_name = get_lang('Assign sessions to sessions administrator');
} else {
$tool_name = get_lang('Assign sessions to Human Resources manager');
}
@ -172,7 +174,7 @@ if (isset($_POST['formSent']) && 1 == (int) ($_POST['formSent'])) {
Display::display_header($tool_name);
// Actions
if (SESSIONADMIN != $user_info['status']) {
if (!$isSessionAdmin) {
$actionsLeft = '<a href="dashboard_add_users_to_user.php?user='.$user_id.'">'.
Display::return_icon('add-user.png', get_lang('Assign users'), null, ICON_SIZE_MEDIUM).'</a>';
$actionsLeft .= '<a href="dashboard_add_courses_to_user.php?user='.$user_id.'">'.
@ -182,7 +184,7 @@ if (SESSIONADMIN != $user_info['status']) {
}
echo Display::page_header(
sprintf(get_lang('Assign sessions to %s'), api_get_person_name($user_info['firstname'], $user_info['lastname'])),
sprintf(get_lang('Assign sessions to %s'), UserManager::formatUserFullName($user)),
null,
'h3'
);
@ -281,8 +283,8 @@ $result = Database::query($sql);
<h5>
<?php
if (UserManager::is_admin($user_id)) {
echo get_lang('AssignedSessionsListToAdministrationistrator');
} elseif (SESSIONADMIN == $user_info['status']) {
echo get_lang('Assigned sessions list to platform administrator');
} elseif ($isSessionAdmin) {
echo get_lang('Assigned sessions list to sessions administrator');
} else {
echo get_lang('List of sessions assigned to the Human Resources manager');

@ -35,16 +35,19 @@ $user_info = api_get_user_info($user_id);
$user_anonymous = api_get_anonymous_id();
$current_user_id = api_get_user_id();
$userStatus = $user_info['status'];
$firstLetterUser = isset($_POST['firstLetterUser']) ? $_POST['firstLetterUser'] : null;
$user = api_get_user_entity($user_id);
$isSessionAdmin = api_is_session_admin($user);
$firstLetterUser = $_POST['firstLetterUser'] ?? null;
// setting the name of the tool
$isAdmin = UserManager::is_admin($user_id);
if ($isAdmin) {
$userStatus = PLATFORM_ADMIN;
$tool_name = get_lang('AssignUsersToAdministrationistrator');
} elseif (SESSIONADMIN == $user_info['status']) {
$tool_name = get_lang('Assign users to the platform administrator');
} elseif ($isSessionAdmin) {
$tool_name = get_lang('Assign users to sessions administrator');
} elseif (STUDENT_BOSS == $user_info['status']) {
} elseif (api_is_student_boss($user)) {
$tool_name = get_lang('Assign users to superior');
} else {
$tool_name = get_lang('Assign users to Human Resources manager');
@ -341,7 +344,7 @@ echo '</div>';
echo Display::page_header(
sprintf(
get_lang('Assign users to %s'),
api_get_person_name($user_info['firstname'], $user_info['lastname'])
UserManager::formatUserFullName($user)
),
null,
'h3'
@ -482,12 +485,12 @@ $result = Database::query($sql);
<div class="col-md-4">
<?php
if (UserManager::is_admin($user_id)) {
echo get_lang('AssignedUsersListToAdministrationistrator');
echo get_lang('Users assigned to the platform administrator');
} else {
if (SESSIONADMIN == $user_info['status']) {
if ($isSessionAdmin) {
echo get_lang('Assign a users list to the sessions administrator');
} else {
if (STUDENT_BOSS == $user_info['status']) {
if (api_is_student_boss($user)) {
echo get_lang('Users assigned to their superior');
} else {
echo get_lang('List of users assigned to Human Resources manager');

@ -2816,31 +2816,6 @@ function api_is_platform_admin_by_id($user_id = null, $url = null)
return 1 === Database::num_rows($res);
}
/**
* Returns the user's numeric status ID from the users table.
*
* @param int $user_id If none provided, will use current user
*
* @return int User's status (1 for teacher, 5 for student, etc)
*/
function api_get_user_status($user_id = null)
{
$user_id = (int) $user_id;
if (empty($user_id)) {
$user_id = api_get_user_id();
}
$table = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT status FROM $table WHERE id = $user_id ";
$result = Database::query($sql);
$status = null;
if (Database::num_rows($result)) {
$row = Database::fetch_array($result);
$status = $row['status'];
}
return $status;
}
/**
* Checks whether current user is allowed to create courses.
*
@ -3008,16 +2983,55 @@ function api_is_coach($session_id = 0, $courseId = null, $check_student_view = t
return count($sessionIsCoach) > 0;
}
function api_user_has_role(string $role, ?User $user = null): bool
{
if (null === $user) {
$user = api_get_current_user();
}
if (null === $user) {
return false;
}
return $user->hasRole($role);
}
function api_is_allowed_in_course(): bool
{
if (api_is_platform_admin()) {
return true;
}
$user = api_get_current_user();
if ($user instanceof User) {
if ($user->hasRole('ROLE_CURRENT_COURSE_SESSION_STUDENT') ||
$user->hasRole('ROLE_CURRENT_COURSE_SESSION_TEACHER') ||
$user->hasRole('ROLE_CURRENT_COURSE_STUDENT') ||
$user->hasRole('ROLE_CURRENT_COURSE_TEACHER')
) {
return true;
}
}
return false;
}
/**
* Checks whether current user is a student boss.
*/
function api_is_student_boss(?User $user = null): bool
{
return api_user_has_role('ROLE_STUDENT_BOSS', $user);
}
/**
* Checks whether the current user is a session administrator.
*
* @return bool True if current user is a course administrator
*/
function api_is_session_admin()
function api_is_session_admin(?User $user = null)
{
$user = api_get_user_info();
return isset($user['status']) && SESSIONADMIN == $user['status'];
return api_user_has_role('ROLE_SESSION_MANAGER', $user);
}
/**
@ -3027,9 +3041,7 @@ function api_is_session_admin()
*/
function api_is_drh()
{
$user = api_get_user_info();
return isset($user['status']) && DRH == $user['status'];
return api_user_has_role('ROLE_RRHH');
}
/**
@ -3039,9 +3051,7 @@ function api_is_drh()
*/
function api_is_student()
{
$user = api_get_user_info();
return isset($user['status']) && STUDENT == $user['status'];
return api_user_has_role('ROLE_STUDENT');
}
/**
@ -3051,9 +3061,7 @@ function api_is_student()
*/
function api_is_teacher()
{
$user = api_get_user_info();
return isset($user['status']) && COURSEMANAGER == $user['status'];
return api_user_has_role('ROLE_TEACHER');
}
/**
@ -3063,9 +3071,7 @@ function api_is_teacher()
*/
function api_is_invitee()
{
$user = api_get_user_info();
return isset($user['status']) && INVITEE == $user['status'];
return api_user_has_role('ROLE_INVITEE');
}
/**
@ -6604,26 +6610,6 @@ function api_can_login_as($loginAsUserId, $userId = null)
$isDrh();
}
function api_is_allowed_in_course(): bool
{
if (api_is_platform_admin()) {
return true;
}
$user = api_get_current_user();
if ($user instanceof User) {
if ($user->hasRole('ROLE_CURRENT_COURSE_SESSION_STUDENT') ||
$user->hasRole('ROLE_CURRENT_COURSE_SESSION_TEACHER') ||
$user->hasRole('ROLE_CURRENT_COURSE_STUDENT') ||
$user->hasRole('ROLE_CURRENT_COURSE_TEACHER')
) {
return true;
}
}
return false;
}
/**
* Return true on https install.
*
@ -6860,25 +6846,6 @@ function api_register_campus($listCampus = true)
}
}
function api_user_has_role(string $role): bool
{
$currentUser = api_get_current_user();
if (null === $currentUser) {
return false;
}
return $currentUser->hasRole($role);
}
/**
* Checks whether current user is a student boss.
*/
function api_is_student_boss(): bool
{
return api_user_has_role('ROLE_STUDENT_BOSS');
}
/**
* Check whether the user type should be exclude.
* Such as invited or anonymous users.

Loading…
Cancel
Save