diff --git a/install/create.sql b/install/create.sql index 4224b2a..ec19e47 100644 --- a/install/create.sql +++ b/install/create.sql @@ -542,6 +542,7 @@ CREATE TABLE `calcms_roles` ( `studio_id` int unsigned NOT NULL, `role` varchar(40) NOT NULL, `level` tinyint unsigned NOT NULL DEFAULT '0', + `admin` INT(1) UNSIGNED NOT NULL DEFAULT 0, `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `modified_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `read_role` tinyint unsigned DEFAULT NULL, @@ -635,11 +636,11 @@ CREATE TABLE `calcms_roles` ( LOCK TABLES `calcms_roles` WRITE; /*!40000 ALTER TABLE `calcms_roles` DISABLE KEYS */; -INSERT INTO `calcms_roles` (`id`, `project_id`, `studio_id`, `role`, `level`, `created_at`, `modified_at`, `read_role`, `update_role`, `read_user_role`, `create_user`, `read_user`, `update_user`, `delete_user`, `update_user_role`, `disable_user`, `create_project`, `read_project`, `update_project`, `delete_project`, `assign_project_studio`, `create_studio`, `read_studio`, `update_studio`, `delete_studio`, `read_studio_timeslot_schedule`, `update_studio_timeslot_schedule`, `create_series`, `read_series`, `update_series`, `delete_series`, `update_series_template`, `assign_series_member`, `remove_series_member`, `scan_series_events`, `assign_series_events`, `read_schedule`, `update_schedule`, `delete_schedule`, `create_event`, `create_event_from_schedule`, `create_event_of_series`, `read_event`, `delete_event`, `update_event_of_series`, `update_event_of_others`, `update_event_time`, `update_event_after_week`, `update_event_field_title`, `update_event_field_title_extension`, `update_event_field_excerpt`, `update_event_field_content`, `update_event_field_content_format`, `update_event_field_description`, `update_event_field_topic`, `update_event_field_episode`, `update_event_field_excerpt_extension`, `update_event_field_image`, `update_event_field_podcast_url`, `update_event_field_archive_url`, `update_event_status_disable_event_sync`, `update_event_status_published`, `update_event_status_rerun`, `update_event_status_draft`, `update_event_status_live`, `update_event_status_playout`, `update_event_status_archived`, `create_image`, `update_image_own`, `read_image`, `delete_image_own`, `update_image_others`, `delete_image_others`, `read_changes`, `undo_changes`, `read_user_stats`, `read_comment`, `update_comment_status_lock`, `update_comment_status_read`, `upload_audio_recordings`, `delete_audio_recordings`, `read_playout`, `create_download`) VALUES (7,1,1,'Admin',7,NULL,'2023-02-19 21:32:32',1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1); -INSERT INTO `calcms_roles` (`id`, `project_id`, `studio_id`, `role`, `level`, `created_at`, `modified_at`, `read_role`, `update_role`, `read_user_role`, `create_user`, `read_user`, `update_user`, `delete_user`, `update_user_role`, `disable_user`, `create_project`, `read_project`, `update_project`, `delete_project`, `assign_project_studio`, `create_studio`, `read_studio`, `update_studio`, `delete_studio`, `read_studio_timeslot_schedule`, `update_studio_timeslot_schedule`, `create_series`, `read_series`, `update_series`, `delete_series`, `update_series_template`, `assign_series_member`, `remove_series_member`, `scan_series_events`, `assign_series_events`, `read_schedule`, `update_schedule`, `delete_schedule`, `create_event`, `create_event_from_schedule`, `create_event_of_series`, `read_event`, `delete_event`, `update_event_of_series`, `update_event_of_others`, `update_event_time`, `update_event_after_week`, `update_event_field_title`, `update_event_field_title_extension`, `update_event_field_excerpt`, `update_event_field_content`, `update_event_field_content_format`, `update_event_field_description`, `update_event_field_topic`, `update_event_field_episode`, `update_event_field_excerpt_extension`, `update_event_field_image`, `update_event_field_podcast_url`, `update_event_field_archive_url`, `update_event_status_disable_event_sync`, `update_event_status_published`, `update_event_status_rerun`, `update_event_status_draft`, `update_event_status_live`, `update_event_status_playout`, `update_event_status_archived`, `create_image`, `update_image_own`, `read_image`, `delete_image_own`, `update_image_others`, `delete_image_others`, `read_changes`, `undo_changes`, `read_user_stats`, `read_comment`, `update_comment_status_lock`, `update_comment_status_read`, `upload_audio_recordings`, `delete_audio_recordings`, `read_playout`, `create_download`) VALUES (3,1,1,'Studio Manager',6,NULL,'2023-02-19 21:32:32',1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,0,1,1,1,1); -INSERT INTO `calcms_roles` (`id`, `project_id`, `studio_id`, `role`, `level`, `created_at`, `modified_at`, `read_role`, `update_role`, `read_user_role`, `create_user`, `read_user`, `update_user`, `delete_user`, `update_user_role`, `disable_user`, `create_project`, `read_project`, `update_project`, `delete_project`, `assign_project_studio`, `create_studio`, `read_studio`, `update_studio`, `delete_studio`, `read_studio_timeslot_schedule`, `update_studio_timeslot_schedule`, `create_series`, `read_series`, `update_series`, `delete_series`, `update_series_template`, `assign_series_member`, `remove_series_member`, `scan_series_events`, `assign_series_events`, `read_schedule`, `update_schedule`, `delete_schedule`, `create_event`, `create_event_from_schedule`, `create_event_of_series`, `read_event`, `delete_event`, `update_event_of_series`, `update_event_of_others`, `update_event_time`, `update_event_after_week`, `update_event_field_title`, `update_event_field_title_extension`, `update_event_field_excerpt`, `update_event_field_content`, `update_event_field_content_format`, `update_event_field_description`, `update_event_field_topic`, `update_event_field_episode`, `update_event_field_excerpt_extension`, `update_event_field_image`, `update_event_field_podcast_url`, `update_event_field_archive_url`, `update_event_status_disable_event_sync`, `update_event_status_published`, `update_event_status_rerun`, `update_event_status_draft`, `update_event_status_live`, `update_event_status_playout`, `update_event_status_archived`, `create_image`, `update_image_own`, `read_image`, `delete_image_own`, `update_image_others`, `delete_image_others`, `read_changes`, `undo_changes`, `read_user_stats`, `read_comment`, `update_comment_status_lock`, `update_comment_status_read`, `upload_audio_recordings`, `delete_audio_recordings`, `read_playout`, `create_download`) VALUES (1,1,1,'Program Planing',4,NULL,'2023-02-19 21:32:32',1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1); -INSERT INTO `calcms_roles` (`id`, `project_id`, `studio_id`, `role`, `level`, `created_at`, `modified_at`, `read_role`, `update_role`, `read_user_role`, `create_user`, `read_user`, `update_user`, `delete_user`, `update_user_role`, `disable_user`, `create_project`, `read_project`, `update_project`, `delete_project`, `assign_project_studio`, `create_studio`, `read_studio`, `update_studio`, `delete_studio`, `read_studio_timeslot_schedule`, `update_studio_timeslot_schedule`, `create_series`, `read_series`, `update_series`, `delete_series`, `update_series_template`, `assign_series_member`, `remove_series_member`, `scan_series_events`, `assign_series_events`, `read_schedule`, `update_schedule`, `delete_schedule`, `create_event`, `create_event_from_schedule`, `create_event_of_series`, `read_event`, `delete_event`, `update_event_of_series`, `update_event_of_others`, `update_event_time`, `update_event_after_week`, `update_event_field_title`, `update_event_field_title_extension`, `update_event_field_excerpt`, `update_event_field_content`, `update_event_field_content_format`, `update_event_field_description`, `update_event_field_topic`, `update_event_field_episode`, `update_event_field_excerpt_extension`, `update_event_field_image`, `update_event_field_podcast_url`, `update_event_field_archive_url`, `update_event_status_disable_event_sync`, `update_event_status_published`, `update_event_status_rerun`, `update_event_status_draft`, `update_event_status_live`, `update_event_status_playout`, `update_event_status_archived`, `create_image`, `update_image_own`, `read_image`, `delete_image_own`, `update_image_others`, `delete_image_others`, `read_changes`, `undo_changes`, `read_user_stats`, `read_comment`, `update_comment_status_lock`, `update_comment_status_read`, `upload_audio_recordings`, `delete_audio_recordings`, `read_playout`, `create_download`) VALUES (2,1,1,'Editorial',2,NULL,'2023-02-19 21:32:32',0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1); -INSERT INTO `calcms_roles` (`id`, `project_id`, `studio_id`, `role`, `level`, `created_at`, `modified_at`, `read_role`, `update_role`, `read_user_role`, `create_user`, `read_user`, `update_user`, `delete_user`, `update_user_role`, `disable_user`, `create_project`, `read_project`, `update_project`, `delete_project`, `assign_project_studio`, `create_studio`, `read_studio`, `update_studio`, `delete_studio`, `read_studio_timeslot_schedule`, `update_studio_timeslot_schedule`, `create_series`, `read_series`, `update_series`, `delete_series`, `update_series_template`, `assign_series_member`, `remove_series_member`, `scan_series_events`, `assign_series_events`, `read_schedule`, `update_schedule`, `delete_schedule`, `create_event`, `create_event_from_schedule`, `create_event_of_series`, `read_event`, `delete_event`, `update_event_of_series`, `update_event_of_others`, `update_event_time`, `update_event_after_week`, `update_event_field_title`, `update_event_field_title_extension`, `update_event_field_excerpt`, `update_event_field_content`, `update_event_field_content_format`, `update_event_field_description`, `update_event_field_topic`, `update_event_field_episode`, `update_event_field_excerpt_extension`, `update_event_field_image`, `update_event_field_podcast_url`, `update_event_field_archive_url`, `update_event_status_disable_event_sync`, `update_event_status_published`, `update_event_status_rerun`, `update_event_status_draft`, `update_event_status_live`, `update_event_status_playout`, `update_event_status_archived`, `create_image`, `update_image_own`, `read_image`, `delete_image_own`, `update_image_others`, `delete_image_others`, `read_changes`, `undo_changes`, `read_user_stats`, `read_comment`, `update_comment_status_lock`, `update_comment_status_read`, `upload_audio_recordings`, `delete_audio_recordings`, `read_playout`, `create_download`) VALUES (25,1,1,'Guest',1,NULL,'2023-02-19 21:32:32',0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); +INSERT INTO `calcms_roles` (`id`, `project_id`, `studio_id`, `role`, `level`, `admin`, `created_at`, `modified_at`, `read_role`, `update_role`, `read_user_role`, `create_user`, `read_user`, `update_user`, `delete_user`, `update_user_role`, `disable_user`, `create_project`, `read_project`, `update_project`, `delete_project`, `assign_project_studio`, `create_studio`, `read_studio`, `update_studio`, `delete_studio`, `read_studio_timeslot_schedule`, `update_studio_timeslot_schedule`, `create_series`, `read_series`, `update_series`, `delete_series`, `update_series_template`, `assign_series_member`, `remove_series_member`, `scan_series_events`, `assign_series_events`, `read_schedule`, `update_schedule`, `delete_schedule`, `create_event`, `create_event_from_schedule`, `create_event_of_series`, `read_event`, `delete_event`, `update_event_of_series`, `update_event_of_others`, `update_event_time`, `update_event_after_week`, `update_event_field_title`, `update_event_field_title_extension`, `update_event_field_excerpt`, `update_event_field_content`, `update_event_field_content_format`, `update_event_field_description`, `update_event_field_topic`, `update_event_field_episode`, `update_event_field_excerpt_extension`, `update_event_field_image`, `update_event_field_podcast_url`, `update_event_field_archive_url`, `update_event_status_disable_event_sync`, `update_event_status_published`, `update_event_status_rerun`, `update_event_status_draft`, `update_event_status_live`, `update_event_status_playout`, `update_event_status_archived`, `create_image`, `update_image_own`, `read_image`, `delete_image_own`, `update_image_others`, `delete_image_others`, `read_changes`, `undo_changes`, `read_user_stats`, `read_comment`, `update_comment_status_lock`, `update_comment_status_read`, `upload_audio_recordings`, `delete_audio_recordings`, `read_playout`, `create_download`) VALUES (7,1,1,'Admin',7,1,NULL,'2023-02-19 21:32:32',1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1); +INSERT INTO `calcms_roles` (`id`, `project_id`, `studio_id`, `role`, `level`, `admin`, `created_at`, `modified_at`, `read_role`, `update_role`, `read_user_role`, `create_user`, `read_user`, `update_user`, `delete_user`, `update_user_role`, `disable_user`, `create_project`, `read_project`, `update_project`, `delete_project`, `assign_project_studio`, `create_studio`, `read_studio`, `update_studio`, `delete_studio`, `read_studio_timeslot_schedule`, `update_studio_timeslot_schedule`, `create_series`, `read_series`, `update_series`, `delete_series`, `update_series_template`, `assign_series_member`, `remove_series_member`, `scan_series_events`, `assign_series_events`, `read_schedule`, `update_schedule`, `delete_schedule`, `create_event`, `create_event_from_schedule`, `create_event_of_series`, `read_event`, `delete_event`, `update_event_of_series`, `update_event_of_others`, `update_event_time`, `update_event_after_week`, `update_event_field_title`, `update_event_field_title_extension`, `update_event_field_excerpt`, `update_event_field_content`, `update_event_field_content_format`, `update_event_field_description`, `update_event_field_topic`, `update_event_field_episode`, `update_event_field_excerpt_extension`, `update_event_field_image`, `update_event_field_podcast_url`, `update_event_field_archive_url`, `update_event_status_disable_event_sync`, `update_event_status_published`, `update_event_status_rerun`, `update_event_status_draft`, `update_event_status_live`, `update_event_status_playout`, `update_event_status_archived`, `create_image`, `update_image_own`, `read_image`, `delete_image_own`, `update_image_others`, `delete_image_others`, `read_changes`, `undo_changes`, `read_user_stats`, `read_comment`, `update_comment_status_lock`, `update_comment_status_read`, `upload_audio_recordings`, `delete_audio_recordings`, `read_playout`, `create_download`) VALUES (3,1,1,'Studio Manager',6,0,NULL,'2023-02-19 21:32:32',1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,0,1,1,1,1); +INSERT INTO `calcms_roles` (`id`, `project_id`, `studio_id`, `role`, `level`, `admin`, `created_at`, `modified_at`, `read_role`, `update_role`, `read_user_role`, `create_user`, `read_user`, `update_user`, `delete_user`, `update_user_role`, `disable_user`, `create_project`, `read_project`, `update_project`, `delete_project`, `assign_project_studio`, `create_studio`, `read_studio`, `update_studio`, `delete_studio`, `read_studio_timeslot_schedule`, `update_studio_timeslot_schedule`, `create_series`, `read_series`, `update_series`, `delete_series`, `update_series_template`, `assign_series_member`, `remove_series_member`, `scan_series_events`, `assign_series_events`, `read_schedule`, `update_schedule`, `delete_schedule`, `create_event`, `create_event_from_schedule`, `create_event_of_series`, `read_event`, `delete_event`, `update_event_of_series`, `update_event_of_others`, `update_event_time`, `update_event_after_week`, `update_event_field_title`, `update_event_field_title_extension`, `update_event_field_excerpt`, `update_event_field_content`, `update_event_field_content_format`, `update_event_field_description`, `update_event_field_topic`, `update_event_field_episode`, `update_event_field_excerpt_extension`, `update_event_field_image`, `update_event_field_podcast_url`, `update_event_field_archive_url`, `update_event_status_disable_event_sync`, `update_event_status_published`, `update_event_status_rerun`, `update_event_status_draft`, `update_event_status_live`, `update_event_status_playout`, `update_event_status_archived`, `create_image`, `update_image_own`, `read_image`, `delete_image_own`, `update_image_others`, `delete_image_others`, `read_changes`, `undo_changes`, `read_user_stats`, `read_comment`, `update_comment_status_lock`, `update_comment_status_read`, `upload_audio_recordings`, `delete_audio_recordings`, `read_playout`, `create_download`) VALUES (1,1,1,'Program Planing',4,0,NULL,'2023-02-19 21:32:32',1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1); +INSERT INTO `calcms_roles` (`id`, `project_id`, `studio_id`, `role`, `level`, `admin`, `created_at`, `modified_at`, `read_role`, `update_role`, `read_user_role`, `create_user`, `read_user`, `update_user`, `delete_user`, `update_user_role`, `disable_user`, `create_project`, `read_project`, `update_project`, `delete_project`, `assign_project_studio`, `create_studio`, `read_studio`, `update_studio`, `delete_studio`, `read_studio_timeslot_schedule`, `update_studio_timeslot_schedule`, `create_series`, `read_series`, `update_series`, `delete_series`, `update_series_template`, `assign_series_member`, `remove_series_member`, `scan_series_events`, `assign_series_events`, `read_schedule`, `update_schedule`, `delete_schedule`, `create_event`, `create_event_from_schedule`, `create_event_of_series`, `read_event`, `delete_event`, `update_event_of_series`, `update_event_of_others`, `update_event_time`, `update_event_after_week`, `update_event_field_title`, `update_event_field_title_extension`, `update_event_field_excerpt`, `update_event_field_content`, `update_event_field_content_format`, `update_event_field_description`, `update_event_field_topic`, `update_event_field_episode`, `update_event_field_excerpt_extension`, `update_event_field_image`, `update_event_field_podcast_url`, `update_event_field_archive_url`, `update_event_status_disable_event_sync`, `update_event_status_published`, `update_event_status_rerun`, `update_event_status_draft`, `update_event_status_live`, `update_event_status_playout`, `update_event_status_archived`, `create_image`, `update_image_own`, `read_image`, `delete_image_own`, `update_image_others`, `delete_image_others`, `read_changes`, `undo_changes`, `read_user_stats`, `read_comment`, `update_comment_status_lock`, `update_comment_status_read`, `upload_audio_recordings`, `delete_audio_recordings`, `read_playout`, `create_download`) VALUES (2,1,1,'Editorial',2,0,NULL,'2023-02-19 21:32:32',0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1); +INSERT INTO `calcms_roles` (`id`, `project_id`, `studio_id`, `role`, `level`, `admin`, `created_at`, `modified_at`, `read_role`, `update_role`, `read_user_role`, `create_user`, `read_user`, `update_user`, `delete_user`, `update_user_role`, `disable_user`, `create_project`, `read_project`, `update_project`, `delete_project`, `assign_project_studio`, `create_studio`, `read_studio`, `update_studio`, `delete_studio`, `read_studio_timeslot_schedule`, `update_studio_timeslot_schedule`, `create_series`, `read_series`, `update_series`, `delete_series`, `update_series_template`, `assign_series_member`, `remove_series_member`, `scan_series_events`, `assign_series_events`, `read_schedule`, `update_schedule`, `delete_schedule`, `create_event`, `create_event_from_schedule`, `create_event_of_series`, `read_event`, `delete_event`, `update_event_of_series`, `update_event_of_others`, `update_event_time`, `update_event_after_week`, `update_event_field_title`, `update_event_field_title_extension`, `update_event_field_excerpt`, `update_event_field_content`, `update_event_field_content_format`, `update_event_field_description`, `update_event_field_topic`, `update_event_field_episode`, `update_event_field_excerpt_extension`, `update_event_field_image`, `update_event_field_podcast_url`, `update_event_field_archive_url`, `update_event_status_disable_event_sync`, `update_event_status_published`, `update_event_status_rerun`, `update_event_status_draft`, `update_event_status_live`, `update_event_status_playout`, `update_event_status_archived`, `create_image`, `update_image_own`, `read_image`, `delete_image_own`, `update_image_others`, `delete_image_others`, `read_changes`, `undo_changes`, `read_user_stats`, `read_comment`, `update_comment_status_lock`, `update_comment_status_read`, `upload_audio_recordings`, `delete_audio_recordings`, `read_playout`, `create_download`) VALUES (25,1,1,'Guest',1,0,NULL,'2023-02-19 21:32:32',0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); /*!40000 ALTER TABLE `calcms_roles` ENABLE KEYS */; UNLOCK TABLES; diff --git a/install/migrate.sql b/install/migrate.sql index e5212df..97c0a64 100644 --- a/install/migrate.sql +++ b/install/migrate.sql @@ -300,3 +300,7 @@ CREATE TABLE `calcms_help_texts` ( PRIMARY KEY (`id`)); ALTER TABLE `calcms_roles` ADD COLUMN `edit_help_texts` INT(1) UNSIGNED NOT NULL; + +-- admin roles +ALTER TABLE `calcms_roles` ADD COLUMN `admin` INT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `level`; +update calcms_roles set admin=1 where role = 'Admin'; diff --git a/lib/calcms/uac.pm b/lib/calcms/uac.pm index 9dc1f06..cb4f837 100644 --- a/lib/calcms/uac.pm +++ b/lib/calcms/uac.pm @@ -456,7 +456,7 @@ sub get_admin_user_roles ($$) { my $query = qq{ select distinct r.*, ur.studio_id, ur.project_id from calcms_users u, calcms_user_roles ur, calcms_roles r - where ur.user_id=u.id and ur.role_id=r.id and r.role='Admin' + where ur.user_id=u.id and ur.role_id=r.id and r.admin=1 $conditions limit 1 }; @@ -735,6 +735,11 @@ sub get_user_presets($$) { my $permissions = uac::get_user_permissions( $config, { user => $user, project_id => $project_id, studio_id => $studio_id } ); + if ($permissions->{admin} == 1) { + for my $key (keys %$permissions) { + $permissions->{$key} = 1; + } + } #only admin is allowed to select all projects # if($permissions->{is_admin}==1){ diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 6a31e79..ba02fb1 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -151,8 +151,14 @@ sub save_roles { } } elsif ( $column eq 'role' ) { $values->{$id}->{$column} = $value; + } elsif ( $column eq 'admin' ) { + if ( $permissions->{is_admin} ){ + $values->{$id}->{$column} = $value; + } else { + uac::permissions_denied("set admin!"); + return; + } } elsif ( $column eq 'id' || $column eq 'project_id' || $column eq 'studio_id' ) { - #id and studio id will be set later } else { $values->{$id}->{$column} = 1 if ( $value =~ /^\d+$/ ); @@ -309,7 +315,6 @@ sub show_roles { } for my $role (@$roles) { - my $id = $role->{id} || ''; my $value = $role->{role} || ''; my $style = '';