示例#1
0
 /**
  * Delete an existing role.
  *
  * This method is accessed by a form on the {@link AdminController::manageRoles}
  * page to allow for the deletion of admin created roles.  Default system roles
  * (authenticated, guest, and admin) cannot be deleted this way.
  */
 public function actionDeleteRole()
 {
     $auth = Yii::app()->authManager;
     if (isset($_POST['role']) && !in_array($_POST['role'], array('authenticated', 'guest', 'admin'))) {
         $id = $_POST['role'];
         $role = Roles::model()->findByAttributes(array('name' => $id));
         if (!isset($role)) {
             // Nonexistent role
             Yii::app()->user->setFlash('error', Yii::t('admin', 'Role does not exist'));
             $this->redirect('manageRoles');
         }
         $id = $role->id;
         $userRoles = RoleToUser::model()->findAllByAttributes(array('roleId' => $role->id));
         foreach ($userRoles as $userRole) {
             $userRole->delete();
         }
         $permissions = RoleToPermission::model()->findAllByAttributes(array('roleId' => $role->id));
         foreach ($permissions as $permission) {
             $permission->delete();
         }
         $workflowRoles = RoleToWorkflow::model()->findAllByAttributes(array('replacementId' => $role->id));
         foreach ($workflowRoles as $workflow) {
             $workflow->delete();
         }
         $auth->removeAuthItem($role->name);
         $role->delete();
         $this->redirect('manageRoles');
     }
 }
 public function actionDeleteRole()
 {
     $roles = Roles::model()->findAll();
     if (isset($_POST['role'])) {
         $id = $_POST['role'];
         $role = Roles::model()->findByAttributes(array('name' => $id));
         $id = $role->id;
         $userRoles = RoleToUser::model()->findAllByAttributes(array('roleId' => $role->id));
         foreach ($userRoles as $userRole) {
             $userRole->delete();
         }
         $permissions = RoleToPermission::model()->findAllByAttributes(array('roleId' => $role->id));
         foreach ($permissions as $permission) {
             $permission->delete();
         }
         $workflowRoles = RoleToWorkflow::model()->findAllByAttributes(array('replacementId' => $role->id));
         foreach ($workflowRoles as $workflow) {
             $workflow->delete();
         }
         $role->delete();
         $this->redirect('manageRoles');
     }
     $this->render('deleteRole', array('roles' => $roles));
 }