From 7f217324c455cbe7e8e90b3c642aecff4de54941 Mon Sep 17 00:00:00 2001 From: Nicolas Iooss Date: Sat, 8 Mar 2014 17:42:26 +0100 Subject: [PATCH] Add "directory_hidden" permission to account types --- classes/user.php | 7 ++++--- upgrade/1.1.12/08_add_directory_hidden_to_account_types.sql | 8 ++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 upgrade/1.1.12/08_add_directory_hidden_to_account_types.sql diff --git a/classes/user.php b/classes/user.php index 10e131c..e380dac 100644 --- a/classes/user.php +++ b/classes/user.php @@ -24,6 +24,7 @@ class User extends PlUser const PERM_API_USER_READONLY = 'api_user_readonly'; const PERM_DIRECTORY_AX = 'directory_ax'; const PERM_DIRECTORY_PRIVATE = 'directory_private'; + const PERM_DIRECTORY_HIDDEN = 'directory_hidden'; const PERM_EDIT_DIRECTORY = 'edit_directory'; const PERM_FORUMS = 'forums'; const PERM_GROUPS = 'groups'; @@ -230,14 +231,14 @@ class User extends PlUser * * Rules are: * - Everyone can view 'public' - * - directory_ax gives access to 'AX' level + * - directory_ax gives access to 'AX' level, ie. the printed directory * - directory_private gives access to 'private' level - * - admin gives access to 'hidden' level + * - admin and directory_hidden gives access to 'hidden' level */ public function readVisibility() { $level = Visibility::VIEW_NONE; - if ($this->is_admin) { + if ($this->is_admin || $this->checkPerms('directory_hidden')) { $level = Visibility::VIEW_ADMIN; } elseif ($this->checkPerms('directory_private')) { $level = Visibility::VIEW_PRIVATE; diff --git a/upgrade/1.1.12/08_add_directory_hidden_to_account_types.sql b/upgrade/1.1.12/08_add_directory_hidden_to_account_types.sql new file mode 100644 index 0000000..9aefb6a --- /dev/null +++ b/upgrade/1.1.12/08_add_directory_hidden_to_account_types.sql @@ -0,0 +1,8 @@ +ALTER TABLE account_types CHANGE COLUMN perms perms + SET('groups', 'mail', 'directory_ax', 'directory_private', 'directory_hidden', + 'edit_directory', 'forums', 'lists', 'payment', 'api_user_readonly', 'gapps', 'user') NOT NULL; + +-- AX needs directory_ax to access some pages and directory_hidden for admin visibility level +UPDATE account_types SET perms = 'groups,directory_ax,directory_hidden,edit_directory,user' WHERE type = 'ax'; + +-- vim:set syntax=mysql: -- 2.1.4