public static function currentOperatorHasAnyOfPermissions($requested_permissions_arr) { $current_user_has_any_of_permissions = Auth::currentUserHasAnyOfPermissions($requested_permissions_arr); if ($current_user_has_any_of_permissions) { return true; } $current_user_id = Auth::currentUserId(); if (!$current_user_id) { //error_log('Auth: no current user'); return false; } // check operator permissions $current_operator_ids_arr = Operator::getIdsArrForUserIdByCreatedAtDesc($current_user_id); if (empty($current_operator_ids_arr)) { //error_log('Auth: no operators for user ' . $current_user_id); return false; } $current_operator_id = $current_operator_ids_arr[0]; $operator_permissions_ids_arr = OperatorPermission::getIdsArrForOperatorIdByCreatedAtDesc($current_operator_id); $assigned_permissions_titles_arr = []; foreach ($operator_permissions_ids_arr as $operator_permission_id) { $operator_permission_obj = OperatorPermission::factory($operator_permission_id); $permission_id = $operator_permission_obj->getPermissionId(); $permission_obj = Permission::factory($permission_id); $assigned_permissions_titles_arr[] = $permission_obj->getTitle(); if (in_array($permission_obj->getTitle(), $requested_permissions_arr)) { return true; } } //error_log('Auth: no permissions for operator ' . $current_operator_id . ' (' . implode(',', $operator_permissions_ids_arr) . ') (' . implode(',', $assigned_permissions_titles_arr) . ') matched requested list: ' . implode(',', $requested_permissions_arr)); return false; }
public static function currentUserLogin() { $user_id = Auth::currentUserId(); if (!$user_id) { return ''; } $user_obj = User::factory($user_id); return $user_obj->getLogin(); }
/** * @param $obj InterfaceOwner * @return bool */ public static function currentUserOwnsObj($obj) { $auth_cookie_name = AuthConfig::getFullAccessCookieName(); if ($auth_cookie_name) { if (isset($_COOKIE[$auth_cookie_name])) { return true; } } $current_user_id = Auth::currentUserId(); if (!$current_user_id) { return false; } return self::userOwnsObj($current_user_id, $obj); }