From 877329f5cc6a934a9a3a1d3e0728e5783274d694 Mon Sep 17 00:00:00 2001 From: Moritz Strohm Date: Tue, 3 May 2022 11:55:14 +0200 Subject: added Room::cbAddAdminPermission --- lib/models/resources/Room.class.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/models/resources/Room.class.php b/lib/models/resources/Room.class.php index e5960db..254c728 100644 --- a/lib/models/resources/Room.class.php +++ b/lib/models/resources/Room.class.php @@ -53,11 +53,32 @@ class Room extends Resource $config['additional_fields']['building']['get'] = 'findBuilding'; $config['registered_callbacks']['before_store'][] = 'cbValidate'; $config['registered_callbacks']['after_delete'][] = 'cbDeleteClipboardItems'; + $config['registered_callbacks']['after_create'][] = 'cbAddAdminPermission'; parent::configure($config); } + /** + * Adds admin permissions for the current user. + * This method is meant as a callback method that shall be called after a room + * has been created. + */ + public function cbAddAdminPermission() + { + $current_user = User::findCurrent(); + if ($current_user) { + //The current user is a real user and not nobody or a CLI script. + //Therefore, we can grant admin permissions to them. + $permission = new ResourcePermission(); + $permission->resource_id = $this->id; + $permission->user_id = $current_user->id; + $permission->perms = 'admin'; + $permission->store(); + } + } + + public static function getTranslatedClassName($item_count = 1) { return ngettext( -- cgit v1.0