示例#1
0
 /**
  * doExecute
  *
  * @return mixed
  * @throws \Exception
  */
 protected function doExecute()
 {
     $username = $this->input->getUsername('username');
     $token = $this->input->getUsername('token');
     $password = $this->input->getString('password');
     $password2 = $this->input->getString('password2');
     try {
         if (!trim($password)) {
             throw new ValidFailException(Translator::translate('windwalker.user.password.not.entered'));
         }
         if ($password != $password2) {
             throw new ValidFailException(Translator::translate('windwalker.user.password.not.match'));
         }
         $user = User::get(array('username' => $username));
         if ($user->isNull()) {
             throw new ValidFailException(Translator::translate('windwalker.user.not.found'));
         }
         $passwordObject = new Password();
         if (!$passwordObject->verify($token, $user->reset_token)) {
             throw new ValidFailException(Translator::translate('windwalker.user.invalid.token'));
         }
         $user->password = $passwordObject->create($password);
         $user->reset_token = '';
         $user->last_reset = '';
         User::save($user);
     } catch (ValidFailException $e) {
         $this->setRedirect($this->router->http('reset', array('task' => 'reset', 'username' => $username, 'token' => $token)), $e->getMessage(), Bootstrap::MSG_DANGER);
         return false;
     }
     $this->setRedirect($this->router->http('reset', array('task' => 'complete')));
     return true;
 }
示例#2
0
 /**
  * define
  *
  * @param Form $form
  *
  * @return  void
  */
 public function define(Form $form)
 {
     parent::define($form);
     $form->wrap('created', null, function (Form $form) {
         $form->add('group', new RadioField())->label(Translator::translate('natika.user.field.group'))->set('class', 'btn-group')->addOption(new Option('Admin', 2))->addOption(new Option('Member', 1));
     });
 }
示例#3
0
 /**
  * Define the form fields.
  *
  * @param Form $form The Windwalker form object.
  *
  * @return  void
  */
 public function define(Form $form)
 {
     /*
      * Search Control
      * -------------------------------------------------
      * Add search fields as options, by default, model will search all columns.
      * If you hop that user can choose a field to search, change "display" to true.
      */
     $form->wrap(null, 'search', function (Form $form) {
         // Search Field
         $form->add('field', new ListField())->label(Translator::translate('phoenix.grid.search.field.label'))->set('display', false)->defaultValue('*')->addOption(new Option(Translator::translate('phoenix.core.all'), '*'))->addOption(new Option(Translator::translate('admin.notification.field.title'), 'notification.title'))->addOption(new Option(Translator::translate('admin.notification.field.alias'), 'notification.alias'));
         // Search Content
         $form->add('content', new TextField())->label(Translator::translate('phoenix.grid.search.label'))->set('placeholder', Translator::translate('phoenix.grid.search.label'));
     });
     /*
      * Filter Control
      * -------------------------------------------------
      * Add filter fields to this section.
      * Remember to add onchange event => this.form.submit(); or Phoenix.post();
      *
      * You can override filter actions in NotificationsModel::configureFilters()
      */
     $form->wrap(null, 'filter', function (Form $form) {
         // State
         $form->add('notification.state', new ListField())->label('State')->addOption(new Option('', ''))->addOption(new Option(Translator::translate('admin.notification.filter.state.select'), ''))->addOption(new Option(Translator::translate('phoenix.grid.state.published'), '1'))->addOption(new Option(Translator::translate('phoenix.grid.state.unpublished'), '0'))->set('onchange', 'this.form.submit()');
     });
 }
示例#4
0
 /**
  * Define the form fields.
  *
  * @param Form $form The Windwalker form object.
  *
  * @return  void
  */
 public function define(Form $form)
 {
     $loginName = WarderHelper::getLoginName();
     $langPrefix = WarderHelper::getPackage()->get('frontend.language.prefix', 'warder.');
     $form->add($loginName, new Field\TextField())->label(Translator::translate($langPrefix . 'user.field.' . $loginName));
     $form->add('password', new Field\PasswordField())->label(Translator::translate($langPrefix . 'user.field.password'));
     $form->add('remember', new Field\CheckboxField())->label(Translator::translate($langPrefix . 'user.field.remember'));
 }
示例#5
0
 /**
  * Define the form fields.
  *
  * @param Form $form The Windwalker form object.
  *
  * @return  void
  */
 public function define(Form $form)
 {
     $langPrefix = WarderHelper::getPackage()->get('frontend.language.prefix', 'warder.');
     $form->add('password', new Field\PasswordField())->label(Translator::translate($langPrefix . 'user.field.password'))->set('placeholder', Translator::translate($langPrefix . 'user.field.password'));
     $form->add('password2', new Field\PasswordField())->label(Translator::translate($langPrefix . 'user.field.password.confirm'))->set('placeholder', Translator::translate($langPrefix . 'user.field.password.confirm'));
     $form->add('email', new Field\HiddenField());
     $form->add('token', new Field\HiddenField());
 }
示例#6
0
 /**
  * Test value and return boolean
  *
  * @param mixed $value
  *
  * @return bool
  * @throws ValidateFailException
  */
 protected function test($value)
 {
     $user = User::get(array($this->field => $value));
     if ($user->notNull()) {
         throw new ValidateFailException(Translator::sprintf('warder.user.save.message.exists', $this->field, $value));
     }
     return true;
 }
示例#7
0
 /**
  * setTitle
  *
  * @param string $title
  *
  * @return  static
  */
 public function setTitle($title = null)
 {
     $layout = $this->getLayout();
     if ($layout != 'user' && !$title) {
         $langPrefix = WarderHelper::getPackage()->get('admin.language.prefix', 'warder.');
         $title = Translator::translate($langPrefix . $layout . '.title');
     }
     return parent::setTitle($title);
 }
示例#8
0
 /**
  * buildInput
  *
  * @param array $attrs
  *
  * @return  string
  */
 public function buildInput($attrs)
 {
     $warder = WarderHelper::getPackage();
     $this->package = $this->get('package') ?: WarderHelper::getAdminPackage(true);
     $this->table = $this->get('table') ?: WarderTable::USERS;
     $langPrefix = $this->get('lang_prefix') ?: $warder->get('admin.language.prefix');
     $this->def('buttonText', '<i class="glyphicon glyphicon-user fa fa-user"></i> ' . Translator::translate($langPrefix . 'user.modal.field.button.select'));
     return parent::buildInput($attrs);
 }
示例#9
0
 /**
  * getSubmenus
  *
  * @return  array
  */
 public function getSubmenus()
 {
     $menus = $this->findViewMenus(static::PLURAL);
     $view = $this->getParent()->getView();
     $package = $view->getPackage();
     $links = array();
     foreach ($menus as $menu) {
         $active = static::active($menu, 'submenu');
         $links[] = new HtmlElement('a', Translator::translate($package->getName() . '.' . $menu), array('href' => $view->getRouter()->html($menu), 'class' => $active));
     }
     return $links;
 }
示例#10
0
 /**
  * Define the form fields.
  *
  * @param Form $form The Windwalker form object.
  *
  * @return  void
  */
 public function define(Form $form)
 {
     $loginName = $this->package->getLoginName();
     $form->wrap('basic', null, function (Form $form) use($loginName) {
         $form->add('name', new Field\TextField())->label(Translator::translate('warder.user.field.name'))->required();
         if (strtolower($loginName) != 'email') {
             $form->add($loginName, new Field\TextField())->label(Translator::translate('warder.user.field.' . $loginName))->required();
         }
         $form->add('email', new Field\EmailField())->label(Translator::translate('warder.user.field.email'))->required();
         $form->add('password', new Field\PasswordField())->label(Translator::translate('warder.user.field.password'))->set('autocomplete', 'off');
         $form->add('password2', new Field\PasswordField())->label(Translator::translate('warder.user.field.password.confirm'))->set('autocomplete', 'off');
     });
 }
示例#11
0
 /**
  * Define the form fields.
  *
  * @param Form $form The Windwalker form object.
  *
  * @return  void
  */
 public function define(Form $form)
 {
     $loginName = WarderHelper::getLoginName();
     $langPrefix = WarderHelper::getPackage()->get('frontend.language.prefix', 'warder.');
     $form->wrap('basic', null, function (Form $form) use($loginName, $langPrefix) {
         $form->add('name', new Field\TextField())->label(Translator::translate($langPrefix . 'user.field.name'))->required();
         if (strtolower($loginName) != 'email') {
             $form->add($loginName, new Field\TextField())->label(Translator::translate($langPrefix . 'user.field.' . $loginName))->setValidator(new UserExistsValidator($loginName))->required();
         }
         $form->add('email', new Field\EmailField())->label(Translator::translate($langPrefix . 'user.field.email'))->setValidator(new UserExistsValidator('email'))->required();
         $form->add('password', new Field\PasswordField())->label(Translator::translate($langPrefix . 'user.field.password'))->set('autocomplete', 'off');
         $form->add('password2', new Field\PasswordField())->label(Translator::translate($langPrefix . 'user.field.password.confirm'))->set('autocomplete', 'off');
     });
 }
示例#12
0
 /**
  * prepareExecute
  *
  * @return  void
  */
 protected function prepareExecute()
 {
     parent::prepareExecute();
     $this->view['email'] = $this->input->getEmail('email');
     $this->view['token'] = $this->input->get('token');
     // Check email and token
     $user = User::get(array('email' => $this->view['email']));
     if ($user->isNull()) {
         $this->backToConfirm(Translator::translate($this->langPrefix . 'user.not.found'));
         return;
     }
     if (!UserHelper::verifyPassword($this->view['token'], $user->reset_token)) {
         $this->backToConfirm('Invalid Token');
         return;
     }
 }
示例#13
0
 /**
  * check
  *
  * @return  static
  */
 public function check()
 {
     $loginName = WarderHelper::getLoginName();
     if (!$this->{$loginName}) {
         throw new \InvalidArgumentException(Translator::translate('warder.user.account.empty'));
     }
     $exists = UserMapper::findOne(array($loginName => $this->{$loginName}));
     if ($exists->notNull() && $this->id != $exists->id) {
         throw new \InvalidArgumentException(Translator::sprintf('warder.user.save.message.exists', $loginName, $this->{$loginName}));
     }
     if ($this->email) {
         $exists = UserMapper::findOne(array('email' => $this->email));
         if ($exists->notNull() && $this->id != $exists->id) {
             throw new \InvalidArgumentException(Translator::sprintf('warder.user.save.message.exists', $loginName, $this->email));
         }
     }
     return $this;
 }
示例#14
0
 /**
  * confirm
  *
  * @return  boolean
  */
 protected function confirm()
 {
     $token = $this->input->get('token');
     $username = $this->input->getUsername('username');
     $user = User::get(array('username' => $username));
     if ($user->isNull()) {
         $this->setRedirect($this->router->http('forgot', array('task' => 'confirm', 'token' => $token)), Translator::translate('windwalker.user.no.user.found'));
         return false;
     }
     // Check token
     $password = new Password();
     if (!$password->verify($token, $user->reset_token)) {
         $this->setRedirect($this->router->http('forgot', array('task' => 'confirm')), Translator::translate('windwalker.user.invalid.token'));
         return false;
     }
     $this->setRedirect($this->router->http('reset', array('username' => $username, 'token' => $token)));
     return true;
 }
示例#15
0
 /**
  * Define the form fields.
  *
  * @param Form $form The Windwalker form object.
  *
  * @return  void
  */
 protected function doDefine(Form $form)
 {
     $warder = WarderHelper::getPackage();
     $loginName = WarderHelper::getLoginName();
     $langPrefix = $warder->get('admin.language.prefix');
     /*
      * Search Control
      * -------------------------------------------------
      * Add search fields as options, by default, model will search all columns.
      * If you hop that user can choose a field to search, change "display" to true.
      */
     $this->wrap(null, 'search', function (Form $form) use($loginName, $langPrefix) {
         // Search Field
         $fieldField = $this->list('field')->label(Translator::translate('phoenix.grid.search.user.field.label'))->set('display', false)->defaultValue('*')->option(Translator::translate('phoenix.core.all'), '*');
         if ($loginName != 'email') {
             $fieldField->option(Translator::translate($langPrefix . 'user.field.' . $loginName), 'user.' . $loginName);
         }
         $fieldField->option(Translator::translate($langPrefix . 'user.field.name'), 'user.name')->option(Translator::translate($langPrefix . 'user.field.email'), 'user.email')->option(Translator::translate($langPrefix . 'user.field.id'), 'user.id');
         // Search Content
         $this->text('content')->label(Translator::translate('phoenix.grid.search.label'))->set('placeholder', Translator::translate('phoenix.grid.search.label'));
     });
     /*
      * Filter Control
      * -------------------------------------------------
      * Add filter fields to this section.
      * Remember to add onchange event => this.form.submit(); or Phoenix.post();
      *
      * You can override filter actions in UsersModel::configureFilters()
      */
     $this->wrap(null, 'filter', function (Form $form) use($loginName, $langPrefix) {
         // Activated
         $this->list('activation')->label($langPrefix . 'filter.activation.label')->option('', '')->option(Translator::translate($langPrefix . 'filter.activation.select'), '')->option(Translator::translate($langPrefix . 'filter.activation.activated'), '1')->option(Translator::translate($langPrefix . 'filter.activation.unactivated'), '0')->set('onchange', 'this.form.submit()');
         // State
         $this->list('user.blocked')->label($langPrefix . 'filter.block.label')->option('', '')->option(Translator::translate($langPrefix . 'filter.block.select'), '')->option(Translator::translate($langPrefix . 'filter.block.blocked'), '1')->option(Translator::translate($langPrefix . 'filter.block.unblocked'), '0')->set('onchange', 'this.form.submit()');
     });
     /*
      * This is batch form definition.
      * -----------------------------------------------
      * Every field is a table column.
      * For example, you can add a 'category_id' field to update item category.
      */
     $this->wrap(null, 'batch', function (Form $form) {
     });
 }
示例#16
0
 /**
  * Define the form fields.
  *
  * @param Form $form The Windwalker form object.
  *
  * @return  void
  */
 public function define(Form $form)
 {
     // Basic fieldset
     $form->wrap('basic', null, function (Form $form) {
         // ID
         $form->add('id', new Field\HiddenField());
         // Title
         $form->add('title', new Field\TextField())->label(Translator::translate('admin.post.field.title'))->setFilter('trim')->required(true);
         // Alias
         $form->add('alias', new Field\TextField())->label(Translator::translate('admin.post.field.alias'));
         // Images
         $form->add('images', new Field\TextField())->label(Translator::translate('admin.post.field.images'));
         // URL
         $form->add('url', new Field\TextField())->label(Translator::translate('admin.post.field.url'))->setValidator(new Rule\UrlValidator())->set('class', 'validate-url');
         // Example: Post List
         $form->add('post_list', new PostListField())->label('List Example');
         // Example: Post Modal
         $form->add('post_modal', new PostModalField())->label('Modal Example');
     });
     // Text Fieldset
     $form->wrap('text', null, function (Form $form) {
         // Introtext
         $form->add('introtext', new Field\TextareaField())->label(Translator::translate('admin.post.field.introtext'))->set('rows', 10);
         // Fulltext
         $form->add('fulltext', new Field\TextareaField())->label(Translator::translate('admin.post.field.fulltext'))->set('rows', 10);
     });
     // Created fieldset
     $form->wrap('created', null, function (Form $form) {
         // State
         $form->add('state', new Field\RadioField())->label(Translator::translate('admin.post.field.state'))->set('class', 'btn-group')->set('default', 1)->addOption(new Option(Translator::translate('phoenix.grid.state.published'), '1'))->addOption(new Option(Translator::translate('phoenix.grid.state.unpublished'), '0'));
         // Version
         $form->add('version', new Field\TextField())->label(Translator::translate('admin.post.field.version'));
         // Created
         $form->add('created', new Phoenix\Field\CalendarField())->label(Translator::translate('admin.post.field.created'));
         // Modified
         $form->add('modified', new Phoenix\Field\CalendarField())->label(Translator::translate('admin.post.field.modified'));
         // Author
         $form->add('created_by', new Field\TextField())->label(Translator::translate('admin.post.field.author'));
         // Modified User
         $form->add('modified_by', new Field\TextField())->label(Translator::translate('admin.post.field.modifiedby'));
     });
 }
示例#17
0
 /**
  * getOrphans
  *
  * @param boolean $flatten
  * @param int     $stripPrefix
  *
  * @return array
  */
 public static function getOrphans($flatten = true, $stripPrefix = 1)
 {
     $orphans = Translator::getInstance()->getOrphans();
     foreach ($orphans as $key => $value) {
         $value = explode('.', $key);
         $value = array_map('ucfirst', $value);
         foreach (range(1, $stripPrefix) as $i) {
             array_shift($value);
         }
         $value = implode(' ', $value);
         $orphans[$key] = $value;
     }
     if (!$flatten) {
         $reg = new Structure();
         foreach ($orphans as $key => $value) {
             $reg->set($key, $value);
         }
         $orphans = $reg->toArray();
     }
     return $orphans;
 }
示例#18
0
 /**
  * Define the form fields.
  *
  * @param Form $form The Windwalker form object.
  *
  * @return  void
  */
 public function define(Form $form)
 {
     $warder = WarderHelper::getPackage();
     $loginName = WarderHelper::getLoginName();
     $langPrefix = $warder->get('admin.language.prefix', 'warder.');
     // Basic fieldset
     $form->wrap('basic', null, function (Form $form) use($loginName, $langPrefix) {
         // Name
         $form->add('name', new Field\TextField())->label(Translator::translate($langPrefix . 'user.field.name'))->required(true);
         if ($loginName != 'email') {
             // Name
             $form->add($loginName, new Field\TextField())->label(Translator::translate($langPrefix . 'user.field.' . $loginName))->required(true);
         }
         // Email
         $form->add('email', new Field\EmailField())->label(Translator::translate($langPrefix . 'user.field.email'))->required();
         // Password
         $form->add('password', new Field\PasswordField())->label(Translator::translate($langPrefix . 'user.field.password'));
         // Password
         $form->add('password2', new Field\PasswordField())->label(Translator::translate($langPrefix . 'user.field.password.confirm'));
     });
     // Created fieldset
     $form->wrap('created', null, function (Form $form) use($langPrefix) {
         if (class_exists(SingleImageDragField::class)) {
             // Avatar
             $form->add('avatar', new SingleImageDragField())->label(Translator::translate($langPrefix . 'user.field.avatar'))->set('default_image', AvatarUploadHelper::getDefaultImage());
         }
         // Blocked
         $form->add('blocked', new Field\RadioField())->label(Translator::translate($langPrefix . 'user.field.name'))->set('class', 'btn-group')->set('default', 0)->option(Translator::translate($langPrefix . 'user.field.blocked.block'), 1)->option(Translator::translate($langPrefix . 'user.field.blocked.unblock'), 0);
         // ID
         $form->add('id', new Field\TextField())->label(Translator::translate($langPrefix . 'user.field.id'))->readonly();
         // Registered
         $form->add('registered', new CalendarField())->label(Translator::translate($langPrefix . 'user.field.registered'))->disabled();
         // Last Login
         $form->add('last_login', new CalendarField())->label(Translator::translate($langPrefix . 'user.field.last.login'))->disabled();
         // Last Reset
         //			$form->add('last_reset', new CalendarField)
         //				->label(Translator::translate($langPrefix . 'user.field.last.reset'))
         //				->set('readonly', true);
     });
 }
示例#19
0
 /**
  * Define the form fields.
  *
  * @param Form $form The Windwalker form object.
  *
  * @return  void
  */
 public function define(Form $form)
 {
     $langPrefix = LunaHelper::getLangPrefix();
     // Title
     $form->add('title', new Field\TextField())->label(Translator::translate($langPrefix . 'article.field.title'))->set('placeholder', Translator::translate($langPrefix . 'article.field.title'))->setFilter('trim')->required(true);
     // Alias
     $form->add('alias', new Field\TextField())->label(Translator::translate($langPrefix . 'article.field.alias'))->set('placeholder', Translator::translate($langPrefix . 'article.field.alias'));
     // Basic fieldset
     $form->wrap('basic', null, function (Form $form) use($langPrefix) {
     });
     // Text Fieldset
     $form->wrap('text', null, function (Form $form) use($langPrefix) {
         // Introtext
         $form->add('body', new SummernoteEditorField())->label(Translator::translate($langPrefix . 'article.field.introtext'))->set('options', array('height' => 450))->set('rows', 10);
     });
     // Created fieldset
     $form->wrap('created', null, function (Form $form) use($langPrefix) {
         // Title
         $form->add('short_title', new Field\TextField())->label('Short Title')->set('placeholder', 'Short Title')->setFilter('trim');
         // URL
         $form->add('url', new Field\TextField())->label('URL')->set('placeholder', 'URL')->set('class', 'validation-url')->setFilter('trim');
         // State
         $form->add('state', new Field\RadioField())->label(Translator::translate($langPrefix . 'article.field.state'))->set('class', 'btn-group')->set('default', 1)->addOption(new Option(Translator::translate('phoenix.grid.state.published'), '1'))->addOption(new Option(Translator::translate('phoenix.grid.state.unpublished'), '0'));
         // ID
         $form->add('id', new Field\HiddenField());
         // Icon
         $form->add('icon', new IconFontAwesomeModalField())->label('Icon');
         // Created
         $form->add('created', new Phoenix\Field\CalendarField())->label(Translator::translate($langPrefix . 'article.field.created'));
         // Modified
         $form->add('modified', new Phoenix\Field\CalendarField())->label(Translator::translate($langPrefix . 'article.field.modified'))->disabled();
         if (WarderHelper::tableExists('users')) {
             // Author
             $form->add('created_by', new UserModalField())->label(Translator::translate($langPrefix . 'article.field.author'));
             // Modified User
             $form->add('modified_by', new UserModalField())->label(Translator::translate($langPrefix . 'article.field.modifiedby'))->readonly();
         }
     });
 }
示例#20
0
 /**
  * Execute the controller.
  *
  * @return  mixed Return executed result.
  *
  * @throws  \LogicException
  * @throws  \RuntimeException
  */
 public function doExecute()
 {
     $model = new LoginModel();
     $user = $this->input->getVar('user');
     $user = new Data($user);
     $result = $model->login($user['username'], $user['password'], $user['remember']);
     $package = $this->getPackage();
     if ($result) {
         $url = $package->get('redirect.login');
         $msg = Translator::translate('windwalker.user.login.success');
     } else {
         $router = $this->package->getRouter();
         $url = $router->http('login', array(), RestfulRouter::TYPE_FULL);
         $msg = Translator::translate('windwalker.user.login.fail');
     }
     $uri = new Uri($url);
     if (!$uri->getScheme()) {
         $url = $this->app->get('uri.base.full') . $url;
     }
     $this->setRedirect($url, $msg);
     return true;
 }
 /**
  * validate
  *
  * @param   array $data
  * @param   Form  $form
  *
  * @return bool
  * @throws ValidateFailException
  */
 public function validate($data, Form $form = null)
 {
     $form = $form ?: $this->getForm('edit');
     $form->bind($data);
     if ($form->validate()) {
         return true;
     }
     $errors = $form->getErrors();
     $msg = array();
     foreach ($errors as $error) {
         $field = $error->getField();
         if ($error->getResult() == ValidateResult::STATUS_REQUIRED) {
             $msg[ValidateResult::STATUS_REQUIRED][] = Translator::sprintf('phoenix.message.validation.required', $field->getLabel() ?: $field->getName(false));
         } elseif ($error->getResult() == ValidateResult::STATUS_FAILURE) {
             $msg[ValidateResult::STATUS_FAILURE][] = Translator::sprintf('phoenix.message.validation.failure', $field->getLabel() ?: $field->getName(false));
         }
     }
     throw new ValidateFailException($msg);
 }
示例#22
0
 /**
  * doSave
  *
  * @param DataInterface $data
  *
  * @return  bool
  *
  * @throws ValidateFailException
  */
 protected function doSave(DataInterface $data)
 {
     $user = User::get(array('email' => $this->data['email']));
     if ($user->isNull()) {
         throw new ValidateFailException(Translator::translate($this->langPrefix . 'user.not.found'));
     }
     // Check token
     $password = new Password();
     if (!$password->verify($this->data['token'], $user->reset_token)) {
         throw new ValidateFailException('Invalid Token');
     }
     return true;
 }
 /**
  * getSuccessMessage
  *
  * @param Data $data
  *
  * @return  string
  */
 public function getSuccessMessage($data = null)
 {
     return Translator::plural($this->langPrefix . 'message.batch.' . $this->action . '.success', count($this->pks), count($this->pks));
 }
示例#24
0
 /**
  * init
  *
  * @return  void
  */
 public function boot()
 {
     parent::boot();
     Translator::loadFile('phoenix', 'ini', $this);
 }
示例#25
0
 /**
  * setTitle
  *
  * @param string $title
  *
  * @return  static
  */
 public function setTitle($title = null)
 {
     $title = $title ?: Translator::sprintf('phoenix.title.grid', Translator::translate($this->langPrefix . $this->getName() . '.title'));
     return parent::setTitle($title);
 }
示例#26
0
 /**
  * sendEmail
  *
  * @param string  $email
  * @param string  $body
  *
  * @return  void
  */
 protected function sendEmail($email, $body)
 {
     Mailer::send(function (MailMessage $message) use($email, $body) {
         $message->subject(Translator::translate($this->langPrefix . 'mail.subject'))->from($this->app->get('mail.from.email', $this->app->get('mail.from.email')), $this->app->get('mail.from.name', $this->app->get('mail.from.name')))->to($email)->body($body);
     });
 }
示例#27
0
 /**
  * validate
  *
  * @param  DataInterface $data
  *
  * @return  void
  *
  * @throws ValidateFailException
  */
 protected function validate(DataInterface $data)
 {
     $validator = new EmailValidator();
     if (!$validator->validate($data->email)) {
         throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.email.invalid'));
     }
     parent::validate($data);
     $loginName = WarderHelper::getLoginName();
     if ($loginName != 'email') {
         $user = User::get(array($loginName => $data->{$loginName}));
         if ($user->notNull() && $user->id != $data->id) {
             throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.user.account.exists'));
         }
     }
     $user = User::get(array('email' => $data->email));
     if ($user->notNull() && $user->id != $data->id) {
         throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.user.email.exists'));
     }
     if ('' !== (string) $data->password) {
         if ($data->password != $data->password2) {
             throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.password.not.match'));
         }
         unset($data->password2);
     } else {
         unset($data->password);
     }
 }
示例#28
0
 /**
  * langKey
  *
  * @param   string  $key
  *
  * @return  void
  */
 public static function translate($key)
 {
     static::translator();
     $asset = static::getAsset();
     $text = Translator::translate($key);
     /** @var Language $language */
     $language = Translator::getInstance();
     $handler = $language->getNormalizeHandler();
     $key = call_user_func($handler, $key);
     $asset->internalScript("Phoenix.Translator.addKey('{$key}', '{$text}')");
 }
示例#29
0
 /**
  * doSave
  *
  * @param DataInterface $data
  *
  * @return  bool
  *
  * @throws ValidateFailException
  */
 protected function doSave(DataInterface $data)
 {
     if (!trim($this->data['password'])) {
         throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.password.not.entered'));
     }
     if ($this->data['password'] != $this->data['password2']) {
         throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.password.not.match'));
     }
     /** @var UserRecord $user */
     $user = User::get(array('email' => $this->data['email']));
     if ($user->isNull()) {
         throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.user.not.found'));
     }
     $passwordObject = new Password();
     if (!$passwordObject->verify($this->data['token'], $user->reset_token)) {
         throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.invalid.token'));
     }
     $user->password = $passwordObject->create($this->data['password']);
     $user->reset_token = '';
     $user->last_reset = '';
     User::save($user);
 }
 /**
  * validate
  *
  * @param  DataInterface $data
  *
  * @return  void
  *
  * @throws ValidateFailException
  */
 protected function validate(DataInterface $data)
 {
     $validator = new EmailValidator();
     if (!$validator->validate($data->email)) {
         throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.email.invalid'));
     }
     $form = $this->model->getForm('registration', 'user');
     $this->model->validate($data->dump(), $form);
     if (!$data->password) {
         throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.password.not.entered'));
     }
     if ($data->password != $data->password2) {
         throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.password.not.match'));
     }
     unset($data->password2);
 }