コード例 #1
0
	/**
	 * Manages with users of the manel.
	 */
	public function actionUsers()
	{
		if(Yii::app()->user->isGuest && $this->isRootDefined())
			Yii::app()->request->redirect('../login/');
		elseif(!Yii::app()->user->isGuest && Yii::app()->user->level == 'user')
			throw new CHttpException(403);
		
		$this->module->dbConnection = 'dbAdmin';
		$this->module->dbSchema = '';	//We must set to null the default schema, because of all the admin tables are named with AutoAdminAccess::sqlAdminTableName()
		$this->module->tableName(AutoAdminAccess::sqlAdminTableName('users'));
		$this->module->setPK('id');

		$fieldsConf = array(
			array('login', 'string', Yii::t('AutoAdmin.access', 'Login'), array('search', 'show', 'maxlength'=>21)),
			array('password', 'password', Yii::t('AutoAdmin.access', 'Password'), array('maxlength'=>32, 'pattern'=>'.{4,}')),
			array('level', 'enum', Yii::t('AutoAdmin.access', 'User level'), array(
					'enum'=>array(
						'root' => Yii::t('AutoAdmin.access', 'Master'),
						'admin' => Yii::t('AutoAdmin.access', 'Administrator'),
						'user' => Yii::t('AutoAdmin.access', 'Plain user'),
					),
					'default'=>'user', 'show',
					'description'=>Yii::t('AutoAdmin.access', '<b>Master</b> can do everything. <b>Administrator</b> can do all but to create new Masters. <b>User</b> is a plain user whose rights can be restricted either by Master and Administrator.'),
				)),
			array('interface_level', 'num', Yii::t('AutoAdmin.access', 'Interface Level'), array('default'=>1, 'show')),
			array('email', 'string', Yii::t('AutoAdmin.access', 'E-mail'), array('null', 'maxlength'=>40)),
			array('surname', 'string', Yii::t('AutoAdmin.access', 'Surname'), array('show', 'search', 'maxlength'=>21)),
			array('firstname', 'string', Yii::t('AutoAdmin.access', 'First name'), array('show', 'maxlength'=>21)),
			array('middlename', 'string', Yii::t('AutoAdmin.access', 'Middle name'), array('show', 'maxlength'=>21)),
			array('regdate', 'datetime', Yii::t('AutoAdmin.access', 'Registration date'), array('readonly', 'default'=>date('Y-m-d H:i:s'))),
		);
		$levelOpts =& AutoAdmin::fByNameOpts('level', $fieldsConf);
		if(!Yii::app()->user->isGuest && Yii::app()->user->level == 'admin')
		{
			unset($levelOpts['enum']['root']);
			unset($levelOpts['enum']['admin']);
			$levelOpts['bind'] = 'user';
		}
		elseif(Yii::app()->user->isGuest && !$this->isRootDefined())
		{
			$levelOpts['default'] = 'root';
		}
		$this->module->fieldsConf($fieldsConf);
		
		if(!Yii::app()->user->isGuest && in_array(Yii::app()->user->level, array('root', 'admin')))
			$this->module->setSubHref('sections');
		$this->module->sortDefault(array('login'));
		$this->pageTitle = Yii::t('AutoAdmin.access', 'Users of the administration panel');
		$this->breadcrumbs = array(
			$this->pageTitle
		);

		$this->module->process();
	}