/** * @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())); }