|
|
|
|
@ -922,13 +922,15 @@ function api_protect_course_script($print_headers = false, $allow_session_admins |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Function used to protect an admin script. |
|
|
|
|
* The function blocks access when the user has no platform admin rights. |
|
|
|
|
* This is only the first proposal, test and improve! |
|
|
|
|
* |
|
|
|
|
* @author Roan Embrechts |
|
|
|
|
*/ |
|
|
|
|
function api_protect_admin_script($allow_sessions_admins = false) { |
|
|
|
|
if (!api_is_platform_admin($allow_sessions_admins)) { |
|
|
|
|
* |
|
|
|
|
* The function blocks access when the user has no platform admin rights with an error message printed on default output |
|
|
|
|
* @param bool Whether to allow session admins as well |
|
|
|
|
* @param bool Whether to allow HR directors as well |
|
|
|
|
* @return bool True if user is allowed, false otherwise. The function also outputs an error message in case not allowed |
|
|
|
|
* @author Roan Embrechts (original author) |
|
|
|
|
*/ |
|
|
|
|
function api_protect_admin_script($allow_sessions_admins = false, $allow_drh = false) { |
|
|
|
|
if (!api_is_platform_admin($allow_sessions_admins, $allow_drh)) { |
|
|
|
|
api_not_allowed(true); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
@ -2185,16 +2187,17 @@ function api_get_self() { |
|
|
|
|
/** |
|
|
|
|
* Checks whether current user is a platform administrator |
|
|
|
|
* @param boolean Whether session admins should be considered admins or not |
|
|
|
|
* @param boolean Whether HR directors should be considered admins or not |
|
|
|
|
* @return boolean True if the user has platform admin rights, |
|
|
|
|
* false otherwise. |
|
|
|
|
* @see usermanager::is_admin(user_id) for a user-id specific function |
|
|
|
|
*/ |
|
|
|
|
function api_is_platform_admin($allow_sessions_admins = false) { |
|
|
|
|
function api_is_platform_admin($allow_sessions_admins = false, $allow_drh = false) { |
|
|
|
|
if ($_SESSION['is_platformAdmin']) { |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
global $_user; |
|
|
|
|
return $allow_sessions_admins && isset($_user['status']) && $_user['status'] == SESSIONADMIN; |
|
|
|
|
return isset($_user['status']) && (($allow_sessions_admins && $_user['status'] == SESSIONADMIN) || ($allow_drh && $_user['status'] == DRH)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|