From d394ed2feec7801d7fb38240fc6f001d4367063c Mon Sep 17 00:00:00 2001 From: Philip Häusler Date: Tue, 13 May 2014 16:49:09 +0200 Subject: notify coordinators about unconfirmed angeltypes --- includes/controller/angeltypes_controller.php | 32 ++++++++++++++-------- includes/controller/user_angeltypes_controller.php | 17 +++++++++++- 2 files changed, 36 insertions(+), 13 deletions(-) (limited to 'includes/controller') diff --git a/includes/controller/angeltypes_controller.php b/includes/controller/angeltypes_controller.php index 6b94545b..59e55a2d 100644 --- a/includes/controller/angeltypes_controller.php +++ b/includes/controller/angeltypes_controller.php @@ -85,9 +85,6 @@ function angeltype_delete_controller() { function angeltype_edit_controller() { global $privileges, $user; - if (! in_array('admin_angel_types', $privileges)) - redirect(page_link_to('angeltypes')); - $name = ""; $restricted = false; $description = ""; @@ -102,21 +99,32 @@ function angeltype_edit_controller() { $name = $angeltype['name']; $restricted = $angeltype['restricted']; $description = $angeltype['description']; + + if (! User_is_AngelType_coordinator($user, $angeltype)) + redirect(page_link_to('angeltypes')); + } else { + if (! in_array('admin_angel_types', $privileges)) + redirect(page_link_to('angeltypes')); } + // In coordinator mode only allow to modify description + $coordinator_mode = ! in_array('admin_angel_types', $privileges); + if (isset($_REQUEST['submit'])) { $ok = true; - if (isset($_REQUEST['name'])) { - list($valid, $name) = AngelType_validate_name($_REQUEST['name'], $angeltype); - if (! $valid) { - $ok = false; - error(_("Please check the name. Maybe it already exists.")); + if (! $coordinator_mode) { + if (isset($_REQUEST['name'])) { + list($valid, $name) = AngelType_validate_name($_REQUEST['name'], $angeltype); + if (! $valid) { + $ok = false; + error(_("Please check the name. Maybe it already exists.")); + } } + + $restricted = isset($_REQUEST['restricted']); } - $restricted = isset($_REQUEST['restricted']); - if (isset($_REQUEST['description'])) $description = strip_request_item_nl('description'); @@ -142,7 +150,7 @@ function angeltype_edit_controller() { return array( isset($angeltype) ? sprintf(_("Edit %s"), $name) : _("Add new angeltype"), - AngelType_edit_view($name, $restricted, $description) + AngelType_edit_view($name, $restricted, $description, $coordinator_mode) ); } @@ -174,7 +182,7 @@ function angeltype_controller() { return array( sprintf(_("Team %s"), $angeltype['name']), - AngelType_view($angeltype, $members, $user_angeltype, in_array('admin_user_angeltypes', $privileges) || $user_angeltype['coordinator'], in_array('admin_angel_types', $privileges)) + AngelType_view($angeltype, $members, $user_angeltype, in_array('admin_user_angeltypes', $privileges) || $user_angeltype['coordinator'], in_array('admin_angel_types', $privileges), $user_angeltype['coordinator']) ); } diff --git a/includes/controller/user_angeltypes_controller.php b/includes/controller/user_angeltypes_controller.php index 095b35f5..cb8c72ae 100644 --- a/includes/controller/user_angeltypes_controller.php +++ b/includes/controller/user_angeltypes_controller.php @@ -1,5 +1,20 @@ ' . $unconfirmed_user_angeltypes[0]['name'] . ''), true); +} + /** * Remove all unconfirmed users from a specific angeltype. */ @@ -263,7 +278,7 @@ function user_angeltype_update_controller() { return array( $coordinator ? _("Add coordinator rights") : _("Remove coordinator rights"), - UserAngelType_update_view($user_angeltype, $user, $angeltype, $coordinator) + UserAngelType_update_view($user_angeltype, $user_source, $angeltype, $coordinator) ); } -- cgit v1.2.3-54-g00ecf