diff --git a/app/views/resources/admin/user_permissions.php b/app/views/resources/admin/user_permissions.php
index 23378a5c42cf92309662a91221e79ff335f6c477..33a9980af1344c4be5399ae557953d3f1602d162 100644
--- a/app/views/resources/admin/user_permissions.php
+++ b/app/views/resources/admin/user_permissions.php
@@ -94,7 +94,7 @@
                         </td>
                         <td>
                             <?= htmlReady($permission->perms) ?>
-                            <? if ($current_global_lock and ($permission->perms != 'admin')): ?>
+                            <? if ($current_global_lock) : ?>
                                 <?= Icon::create('exclaim', 'attention')->asImg(
                                     '20px',
                                     [
diff --git a/lib/models/resources/Resource.class.php b/lib/models/resources/Resource.class.php
index 2b5de69df02e7d85d843758f6fd108289443b7b0..90690397a1a4d8b70a2db005083f3022c55afb50 100644
--- a/lib/models/resources/Resource.class.php
+++ b/lib/models/resources/Resource.class.php
@@ -2287,8 +2287,7 @@ class Resource extends SimpleORMap implements StudipItem
      */
     public function getUserPermission(User $user, $time_range = [], $permanent_only = false)
     {
-        if ($user->perms == 'root') {
-            //root users are automatically resource admins:
+        if (ResourceManager::getGlobalResourcePermission($user) === 'admin') {
             return 'admin';
         }
 
@@ -2357,23 +2356,30 @@ class Resource extends SimpleORMap implements StudipItem
             }
         }
 
+        if (!$perm_string) {
+            //A user which doesn't have special permissions for this resource
+            //can have global resource permissions:
+            $global_perm = ResourceManager::getGlobalResourcePermission($user);
+            if ($global_perm) {
+                //Set the permission cache:
+                if (!is_array(self::$permission_cache[$this->id])) {
+                    self::$permission_cache[$this->id] = [];
+                }
+                self::$permission_cache[$this->id][$user->id] = $global_perm;
+            }
+            $perm_string = $global_perm;
+        }
         //Now we must check for global resource locks:
 
         if (GlobalResourceLock::currentlyLocked()) {
             //The resource management system is currently locked.
-            //We must either return 'admin' for users with that
-            //permission level or 'user' for all other permission
+            //permission level 'user' for all other permission
             //levels.
-            if ($perm_string == 'admin') {
-                return 'admin';
-            } elseif ($perm_string) {
+            if ($perm_string) {
                 //A permission level exists for the user.
                 //The user gets "user" permissions in case
                 //a global lock is active.
-                return 'user';
-            } else {
-                //No permission level exists for the user.
-                return '';
+                $perm_string = 'user';
             }
         }
 
@@ -2383,17 +2389,7 @@ class Resource extends SimpleORMap implements StudipItem
             return $perm_string;
         }
 
-        //A user which doesn't have special permissions for this resource
-        //can have global resource permissions:
-        $global_perm = ResourceManager::getGlobalResourcePermission($user);
-        if ($global_perm) {
-            //Set the permission cache:
-            if (!is_array(self::$permission_cache[$this->id])) {
-                self::$permission_cache[$this->id] = [];
-            }
-            self::$permission_cache[$this->id][$user->id] = $global_perm;
-        }
-        return $global_perm;
+
     }
 
     /**
@@ -2417,8 +2413,8 @@ class Resource extends SimpleORMap implements StudipItem
             return false;
         }
 
-        if ($user->perms == 'root') {
-            //root users have all permissions for the resource.
+
+        if (ResourceManager::getGlobalResourcePermission($user) === 'admin') {
             return true;
         }
 
@@ -2435,7 +2431,7 @@ class Resource extends SimpleORMap implements StudipItem
                 return false;
             }
         } elseif ($permission === 'autor') {
-            if ($perm_level != 'admin' && GlobalResourceLock::currentlyLocked()) {
+            if (GlobalResourceLock::currentlyLocked()) {
                 //A global resource lock means no writing actions are permitted.
                 return false;
             }
@@ -2445,7 +2441,7 @@ class Resource extends SimpleORMap implements StudipItem
                 return false;
             }
         } elseif ($permission === 'tutor') {
-            if ($perm_level != 'admin' && GlobalResourceLock::currentlyLocked()) {
+            if (GlobalResourceLock::currentlyLocked()) {
                 //A global resource lock means no writing actions are permitted.
                 return false;
             }