예제 #1
0
	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		return (Y::checkAccess('moderator')?array(
			array('username, password, email', 'required', 'on' => 'create'),
			array('username, email', 'required', 'on' => 'update'),
			array('id, role, username, password, email, activkey, createtime, lastvisit, status', 'safe'),
			array('username', 'length', 'max'=>20, 'min' => 3,'message' => Users::t("Incorrect username (length between 2 and 20 characters).")),
			array('password', 'length', 'max'=>128, 'min' => 4,'message' => Users::t("Incorrect password (minimal length 4 symbols).")),
			array('email', 'email'),
			array('username', 'unique', 'message' => Users::t("This user's name already exists.")),
			array('email', 'unique', 'message' => Users::t("This user's email address already exists.")),
			array('username', 'match', 'pattern' => '/^[A-Za-z0-9_]+$/u','message' => Users::t("Incorrect symbols (A-z0-9).")),
			array('status', 'in', 'range'=>array(self::STATUS_NOACTIVE,self::STATUS_ACTIVE,self::STATUS_BANED)),
			array('role', 'in', 'range'=>Lookup::keys('role')),
			array('username, email, createtime, lastvisit, status', 'required'),
			array('createtime, lastvisit, status', 'numerical', 'integerOnly'=>true),
		):((Y::userId()==$this->id)?array(
			array('username, email', 'required'),
			array('username', 'length', 'max'=>20, 'min' => 3,'message' => Users::t("Incorrect username (length between 2 and 20 characters).")),
			array('email', 'email'),
			array('username', 'unique', 'message' => Users::t("This user's name already exists.")),
			array('username', 'match', 'pattern' => '/^[A-Za-z0-9_]+$/u','message' => Users::t("Incorrect symbols (A-z0-9).")),
			array('email', 'unique', 'message' => Users::t("This user's email address already exists.")),
		):array()));
	}