diff --git a/app/controllers/resources/room.php b/app/controllers/resources/room.php
index 1e9fc732b1952dcbaee32cc02be1d09bb177da30..399de0b03c9e5ba6a495d3670d894dc7ee1abe50 100644
--- a/app/controllers/resources/room.php
+++ b/app/controllers/resources/room.php
@@ -33,6 +33,7 @@ class Resources_RoomController extends AuthenticatedController
 
     public function index_action($room_id = null)
     {
+        $this->user = User::findCurrent();
         $this->room = Room::find($room_id);
 
         if (!$this->room) {
@@ -54,20 +55,12 @@ class Resources_RoomController extends AuthenticatedController
             Navigation::activateItem('/room_management/overview/index');
         }
 
-        $user                                 = User::findCurrent();
-        $current_user_is_resource_admin       = $this->room->userHasPermission(
-            $user,
-            'admin'
-        );
-        $current_user_is_resource_tutor       = $this->room->userHasPermission(
-            $user,
-            'tutor'
-        );
-        $this->current_user_is_resource_autor = $this->room->userHasPermission(
-            $user,
-            'autor'
-        );
-        $current_user_is_resource_user        = $this->room->userHasPermission($user);
+        $this->current_user_is_resource_admin  = $this->room->userHasPermission($this->user, 'admin');
+        $current_user_is_resource_tutor        = $this->room->userHasPermission($this->user, 'tutor');
+        $this->current_user_is_resource_autor  = $this->room->userHasPermission($this->user, 'autor');
+        $this->current_user_has_request_rights = $this->room->userHasRequestRights($this->user);
+        $current_user_is_resource_user         = $this->room->userHasPermission($this->user);
+        $this->booking_plan_is_visible         = $this->room->bookingPlanVisibleForUser($this->user);
 
         $sidebar           = Sidebar::get();
         $actions           = new ActionsWidget();
@@ -92,7 +85,7 @@ class Resources_RoomController extends AuthenticatedController
                         'target' => '_blank'
                     ]
                 );
-            } elseif ($this->room->bookingPlanVisibleForUser($user)) {
+            } elseif ($this->booking_plan_is_visible) {
                 $actions_available = true;
                 $actions->addLink(
                     _('Belegungsplan'),
@@ -111,7 +104,7 @@ class Resources_RoomController extends AuthenticatedController
                     ]
                 );
             }
-            if ($current_user_is_resource_admin) {
+            if ($this->current_user_is_resource_admin) {
                 $actions_available = true;
                 $actions->addLink(
                     _('Raum bearbeiten'),
@@ -142,7 +135,10 @@ class Resources_RoomController extends AuthenticatedController
                 );
             }
         }
-        if (!$this->current_user_is_resource_autor && $this->room->requestable) {
+        if (!$this->current_user_is_resource_autor
+            && $this->room->requestable
+            && $this->current_user_has_request_rights
+        ) {
             $actions_available = true;
             $actions->addLink(
                 _('Raum anfragen'),
diff --git a/app/views/resources/room/index.php b/app/views/resources/room/index.php
index 3d1fc5903380e521003b79e80c01178ad40fcdd7..d00aaa8b1057346aeaebc8acec3925ee5fb732b8 100644
--- a/app/views/resources/room/index.php
+++ b/app/views/resources/room/index.php
@@ -69,7 +69,7 @@
 <? endif ?>
 
 <footer data-dialog-button>
-    <? if ($room->userHasPermission(User::findCurrent(), 'autor')) : ?>
+    <? if ($current_user_is_resource_autor) : ?>
         <?= \Studip\LinkButton::create(
             _('Wochenbelegung'),
             $room->getActionURL('booking_plan')
@@ -78,7 +78,7 @@
             _('Semesterbelegung'),
             $room->getActionURL('semester_plan')
         ) ?>
-    <? elseif ($room->bookingPlanVisibleForUser(User::findCurrent())) : ?>
+    <? elseif ($booking_plan_is_visible) : ?>
         <?= \Studip\LinkButton::create(
             _('Belegungsplan'),
             $room->getActionURL('booking_plan')
@@ -97,7 +97,7 @@
             )
         ) ?>
     <? endif ?>
-    <? if ($room->userHasPermission(User::findCurrent(), 'admin')) : ?>
+    <? if ($current_user_is_resource_admin) : ?>
         <?= \Studip\LinkButton::createEdit(
             _('Bearbeiten'),
             $room->getActionURL('edit'),
@@ -106,11 +106,10 @@
             ]
         ) ?>
     <? endif ?>
-    <? if (!$current_user_is_resource_autor && $room->requestable) : ?>
+    <? if (!$current_user_is_resource_autor && $room->requestable && $current_user_has_request_rights) : ?>
         <?= \Studip\LinkButton::create(
             _('Raum anfragen'),
             $room->getActionURL('request'),
             ['data-dialog' => 'size=auto']) ?>
     <? endif ?>
 </footer>
-