public function actionUser() { $user = User::model()->findByPk(isset($_REQUEST['user_id']) ? intval($_REQUEST['user_id']) : null); if (is_null($user)) { $user = new User(); } $criteria = new CDbCriteria(); $criteria->compare('controller', Yii::app()->params['controllers'][2]); $criteria->compare('enable', '1'); $criteria->addNotInCondition('action', AccessGlobal::getDefaultAction()); $criteria->order = "action asc"; $actions = AccessGlobal::model()->findAll($criteria); if (Yii::app()->request->isPostRequest && isset($_POST['User'])) { $user->attributes = $_POST['User']; $user->pass = $_POST['User']['pass']; if ($user->save()) { AccessUser::model()->deleteAllByAttributes(array('user_id' => $user->user_id)); $accessForUser = array_merge($_POST['access'] ? $_POST['access'] : array(), AccessGlobal::getIdDefaultAction()); foreach ($accessForUser as $val) { $access = new AccessUser(); $access->user_id = $user->user_id; $access->action_id = $val; $access->save(); } $this->redirect($this->createUrl('superadmin/users')); } } $this->render('user', array('user' => $user, 'actions' => $actions, 'access' => AccessUser::getActionIdFromUser($user->user_id))); }
public function actionIndex() { $checkAccess = Yii::app()->user->access['site']; $defAccess = AccessGlobal::getDefaultAction(); foreach ($defAccess as $access) { unset($checkAccess[array_search($access, $checkAccess)]); } $access = $checkAccess ? array_shift($checkAccess) : 'Logout'; $this->redirect($this->createUrl('site/' . $access)); }
public static function getIdDefaultAction() { $res = array(); $defAction = AccessGlobal::getDefaultAction(); foreach ($defAction as $key => $action) { $res[$key] = AccessGlobal::getActionIdForController($action, 'Site'); } return $res; }