From f879057c36893e9e57f7fa18ec354b5f507bcb18 Mon Sep 17 00:00:00 2001
From: Manuel Schwarz <manschwa@uos.de>
Date: Fri, 1 Oct 2021 09:54:22 +0200
Subject: [PATCH] First try to fix global resource lock.

---
 app/controllers/resources/room_request.php | 4 ++--
 lib/models/resources/Resource.class.php    | 7 ++++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/app/controllers/resources/room_request.php b/app/controllers/resources/room_request.php
index c54b6683dc8..c3c73ae4f0e 100644
--- a/app/controllers/resources/room_request.php
+++ b/app/controllers/resources/room_request.php
@@ -1574,7 +1574,7 @@ class Resources_RoomRequestController extends AuthenticatedController
                     return;
                 }
 
-                if (!$room->userHasPermission($this->current_user, 'autor')) {
+                if (!$room->userHasPermission($this->current_user, 'admin')) {
                     PageLayout::postError(
                         sprintf(
                             _('Unzureichende Berechtigungen zum Buchen des Raumes %s!'),
@@ -2159,7 +2159,7 @@ class Resources_RoomRequestController extends AuthenticatedController
             return;
         }
 
-        if (!$room->userHasPermission($this->current_user, 'autor')) {
+        if (!$room->userHasPermission($this->current_user, 'admin')) {
             PageLayout::postError(
                 sprintf(
                     _('Unzureichende Berechtigungen zum Buchen des Raumes %s!'),
diff --git a/lib/models/resources/Resource.class.php b/lib/models/resources/Resource.class.php
index c5cc4447b09..c8d72573177 100644
--- a/lib/models/resources/Resource.class.php
+++ b/lib/models/resources/Resource.class.php
@@ -1465,7 +1465,7 @@ class Resource extends SimpleORMap implements StudipItem
     public function getInfolabelPrperties()
     {
         return SimpleCollection::createFromArray(
-            ResourceProperty::findBySQL('INNER JOIN `resource_property_definitions` USING (`property_id`) 
+            ResourceProperty::findBySQL('INNER JOIN `resource_property_definitions` USING (`property_id`)
                 WHERE `info_label` = 1 AND `state` != "" AND `resource_id` = ?', [$this->id]
             )
         );
@@ -2339,9 +2339,10 @@ class Resource extends SimpleORMap implements StudipItem
                 //permission cache. Load it from the database and store
                 //it in the permission cache before returning it.
                 $perms = ResourcePermission::findOneBySql(
-                    '(resource_id = :resource_id) AND (user_id = :user_id)',
+                    '(resource_id = :resource_id OR resource_id = :global) AND (user_id = :user_id)',
                     [
                         'resource_id' => $this->id,
+                        'global'      => 'global',
                         'user_id'     => $user->id
                     ]
                 );
@@ -2543,7 +2544,7 @@ class Resource extends SimpleORMap implements StudipItem
         //Check the permissions on this resource and the global permissions:
         return $this->userHasPermission(
             $user,
-            'autor',
+            'admin',
             [
                 $begin,
                 $end
-- 
GitLab