From faa12c80652233766f5c9ae83441109cda93872d Mon Sep 17 00:00:00 2001 From: Albert Santoni Date: Fri, 20 Jun 2014 13:36:06 -0400 Subject: [PATCH] Super Admin edit page points to billing now * Also prevent super admin from being deleted --- airtime_mvc/application/configs/constants.php | 1 + .../application/controllers/UserController.php | 10 +++++++++- airtime_mvc/application/models/User.php | 7 ++++++- .../views/scripts/form/edit-user.phtml | 2 +- .../views/scripts/user/add-user.phtml | 3 +++ airtime_mvc/public/js/airtime/user/user.js | 18 ++++++++++++------ 6 files changed, 32 insertions(+), 9 deletions(-) diff --git a/airtime_mvc/application/configs/constants.php b/airtime_mvc/application/configs/constants.php index 34f8cab41..9e2563d0f 100644 --- a/airtime_mvc/application/configs/constants.php +++ b/airtime_mvc/application/configs/constants.php @@ -41,6 +41,7 @@ define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream'); //User types define('UTYPE_HOST' , 'H'); define('UTYPE_ADMIN' , 'A'); +define('UTYPE_SUPERADMIN' , 'S'); define('UTYPE_GUEST' , 'G'); define('UTYPE_PROGRAM_MANAGER' , 'P'); diff --git a/airtime_mvc/application/controllers/UserController.php b/airtime_mvc/application/controllers/UserController.php index 30963ae98..f28917e9e 100644 --- a/airtime_mvc/application/controllers/UserController.php +++ b/airtime_mvc/application/controllers/UserController.php @@ -63,7 +63,9 @@ class UserController extends Zend_Controller_Action $user->setPassword($formData['password']); } if (array_key_exists('type', $formData)) { - $user->setType($formData['type']); + if ($formData['type'] != UTYPE_SUPERADMIN) { //Don't allow any other user to be promoted to Super Admin + $user->setType($formData['type']); + } } $user->setEmail($formData['email']); $user->setCellPhone($formData['cell_phone']); @@ -189,6 +191,12 @@ class UserController extends Zend_Controller_Action } $user = new Application_Model_User($delId); + + // Don't allow super admins to be deleted. + if ($user->isSuperAdmin()) + { + return; + } # Take care of the user's files by either assigning them to somebody # or deleting them all diff --git a/airtime_mvc/application/models/User.php b/airtime_mvc/application/models/User.php index 8a1008577..dc1cd49c8 100644 --- a/airtime_mvc/application/models/User.php +++ b/airtime_mvc/application/models/User.php @@ -49,7 +49,12 @@ class Application_Model_User { return $this->isUserType(UTYPE_ADMIN); } - + + public function isSuperAdmin() + { + return $this->isUserType(UTYPE_SUPERADMIN); + } + public function canSchedule($p_showId) { $type = $this->getType(); diff --git a/airtime_mvc/application/views/scripts/form/edit-user.phtml b/airtime_mvc/application/views/scripts/form/edit-user.phtml index 1cf55dba4..b26d87499 100644 --- a/airtime_mvc/application/views/scripts/form/edit-user.phtml +++ b/airtime_mvc/application/views/scripts/form/edit-user.phtml @@ -157,7 +157,7 @@ - + diff --git a/airtime_mvc/application/views/scripts/user/add-user.phtml b/airtime_mvc/application/views/scripts/user/add-user.phtml index a85744a46..b58607a89 100644 --- a/airtime_mvc/application/views/scripts/user/add-user.phtml +++ b/airtime_mvc/application/views/scripts/user/add-user.phtml @@ -26,6 +26,9 @@ +
successMessage ?>
diff --git a/airtime_mvc/public/js/airtime/user/user.js b/airtime_mvc/public/js/airtime/user/user.js index 3473e1acf..f3a414b66 100644 --- a/airtime_mvc/public/js/airtime/user/user.js +++ b/airtime_mvc/public/js/airtime/user/user.js @@ -4,6 +4,17 @@ function populateForm(entries){ $('.errors').remove(); $('.success').remove(); + if (entries.type === 'S') + { + $("#user_details").hide(); + $("#user_details_superadmin_message").show(); + $('#type').attr('disabled', '1'); + } else { + $("#user_details").show(); + $("#user_details_superadmin_message").hide(); + $('#type').removeAttr('disabled'); + } + $('#user_id').val(entries.id); $('#login').val(entries.login); $('#first_name').val(entries.first_name); @@ -23,12 +34,6 @@ function populateForm(entries){ $('#password').val(""); $('#passwordVerify').val(""); } - if (entries.login === 'admin') - { - $('#type').attr('disabled', '1'); - } else { - $('#type').removeAttr('disabled'); - } } function rowClickCallback(row_id){ @@ -66,6 +71,7 @@ function rowCallback( nRow, aData, iDisplayIndex ){ } else if ( aData['type'] == "S" ) { $('td:eq(3)', nRow).html( $.i18n._('Super Admin') ); + $('td:eq(4)', nRow).html(""); //Disable deleting the super admin } return nRow;