Example #1
0
 /**
  * Generate Model config.
  *
  * @static
  * @access   public
  * @return   ModelCore\MConfig
  * @since    1.1.1-dev
  * @version  1.3.0-dev
  */
 public static function generateConfig()
 {
     $config = parent::generateConfig();
     // BACKEND
     $config->addField(Form\Field\Hidden::singleton('id')->setDisabled());
     $config->addField(Form\Field\Text::singleton('title')->setLabel(__('Menu title')));
     // return config
     return $config;
 }
Example #2
0
 /**
  * Generate config object of particular Model.
  *
  * @static
  * @author   Krzysztof Trzos
  * @access   protected
  * @return   ModelCore\MConfig
  * @since    2015-01-10
  * @version  1.1.1-dev, 2015-08-10
  */
 public static function generateConfig()
 {
     // get config
     $config = parent::generateConfig();
     // add fields
     $config->addField(Form\Field\Hidden::singleton('id'));
     $config->addField(Form\Field\Text::singleton('name')->setLabel(__('Name'))->setRequired());
     // return config
     return $config;
 }
Example #3
0
 /**
  * Generate Config.
  *
  * @static
  * @access   public
  * @return   ModelCore\MConfig
  * @since    1.0.0-alpha
  * @version  1.0.0-alpha
  */
 public static function generateConfig()
 {
     // get Config from parent
     $config = parent::generateConfig();
     // BACKEND
     $config->addField(Form\Field\Hidden::singleton('id')->setLabel(__('ID'))->setDisabled());
     $config->addField(Form\Field\Text::singleton('title')->setLabel(__('Title')));
     $config->addField(Form\Field\Textarea::singleton('description')->setLabel(__('Description')));
     // return Config
     return $config;
 }
Example #4
0
 /**
  * Method which changes form object before all operations (validation and saving).
  *
  * @access   protected
  * @param    Form $form
  * @since    1.0.1-dev, 2015-02-20
  * @version  2.1.1-dev
  */
 protected function alterForm(Form &$form)
 {
     parent::alterForm($form);
     $sCurrentRoute = Router::getCurrentRouteName();
     # other pages
     switch ($sCurrentRoute) {
         // USER PASSWORD CHANGE
         case 'user_password_change':
         case 'password_recovery_code':
             $form->getField('password')->setLabel(__('New password'));
             $form->addField(Form\Field\Password::factory('new_password_confirm', $form)->setRequired()->setLabel(__('Confirm new password'))->addRule(['\\Plethora\\Validator\\Rules::sameAs', [':value', ':valuefrom:password']]));
             break;
             //  USER REGISTRATION
         //  USER REGISTRATION
         case 'register':
             $loginAttributes = $form->getField('login')->getAttributes();
             $loginAttributes->removeAttribute('disabled');
             $emailAttrs = $form->getField('email')->getAttributes();
             $emailAttrs->removeAttribute('disabled');
             $form->addField(Form\Field\Text::factory('email_confirm', $form)->setRequired()->setLabel(__('Confirm e-mail'))->setWeightToBeAfter('email')->addRule(['\\Plethora\\Validator\\Rules::sameAs', [':value', ':valuefrom:email']]));
             $form->getField('password')->setWeightToBeAfter('email_confirm');
             $form->addField(Form\Field\Password::factory('password_confirm', $form)->setRequired()->setLabel(__('Confirm password'))->addRule(['\\Plethora\\Validator\\Rules::sameAs', [':value', ':valuefrom:password']])->setWeightToBeAfter('password'));
             break;
     }
     if (in_array($sCurrentRoute, ['backend', 'user_profile_edit', 'user_password_change'])) {
         $confirmField = Form\Field\PasswordConfirm::factory('password_check', $form);
         $confirmField->setLabel(__('Enter your password'));
         $confirmField->setTip(__('This field is used for a security purposes.'));
         $confirmField->setWeight(999);
         $confirmField->setPrefix('<div class="field_prefix" style="margin-top: 50px;"></div>');
         $form->addField($confirmField);
     }
     if (in_array($sCurrentRoute, ['user_profile_edit'])) {
         $form->removeField('roles');
     }
     if (in_array($sCurrentRoute, ['backend'])) {
         /* @var $password Field\Password */
         $password = $form->getField('password');
         $password->setRequiredNot();
     }
     # captcha on needed pages
     if (in_array($sCurrentRoute, ['register'])) {
         $captchaField = Form\Field\Captcha::singleton('captcha');
         $captchaField->setLabel(__('Security field'));
         $captchaField->setWeight(999999999);
         $captchaField->setFormIfSingleton($form);
     }
 }
Example #5
0
 /**
  * ACTION - User login.
  *
  * @access   public
  * @return   View
  * @since    1.0.2, 2013-12-07
  * @version  1.0.7-dev, 2015-05-04
  */
 public function actionLogin()
 {
     $this->setTitle(Core::getAppName() . ' - ' . __('Login form'));
     $this->addBreadCrumb(__('Login form'));
     $oLoggedUser = Model\User::getLoggedUser();
     if ($oLoggedUser instanceof Model\User) {
         Route::factory('user_profile')->redirectTo(['id' => $oLoggedUser->getId()]);
     }
     $failedLogins = \User\LoginFail::getCachedData();
     if ($failedLogins > 4) {
         return View::factory('base/alert')->set('sType', 'danger')->set('sMsg', __('to.many.incorrect.logins'));
     }
     $oLoginForm = Form::factory('login');
     $oLoginForm->addField(Form\Field\Text::factory('login', $oLoginForm));
     $oLoginForm->addField(Form\Field\Password::factory('password', $oLoginForm));
     if ($oLoginForm->isSubmittedAndValid()) {
         $sUsername = $oLoginForm->get('login');
         $sPassword = $oLoginForm->get('password');
         $sEncryptedPassword = Helper\Encrypter::factory()->encrypt($sUsername, $sPassword);
         $oUser = DB::query("SELECT u FROM \\Model\\User u WHERE u.login = :login AND u.password = :pass")->param('login', $sUsername)->param('pass', $sEncryptedPassword)->single();
         if ($oUser instanceof Model\User) {
             Session::set('username', $sUsername);
             Session::set('uid', (int) $oUser->getId());
             $oUser->setLoginDateNOW();
             DB::flush();
             # Get role permissions for particular user and set them in session
             \UserPermissions::reset();
             Route::factory(Router::getCurrentRouteName())->redirectTo();
         } else {
             $currentUrl = Router::currentUrl();
             $alert = __('You have entered wrong username or password. Try again.');
             \User\LoginFail::addLoginFail();
             Session::flash($currentUrl, $alert, 'danger');
         }
     }
     $oLoginForm->addToSuffix(View::factory('user/frontend/login_links')->render());
     return View::factory('base/form')->bind('oForm', $oLoginForm);
 }
Example #6
0
 /** @noinspection PhpMissingParentCallCommonInspection */
 public function actionDefault()
 {
     // create pass recovery form
     $oForm = Form::factory('password_recovery');
     $emailField = Form\Field\Text::factory('email', $oForm)->setRequired()->setLabel('E-mail');
     $oForm->addField($emailField);
     $oForm->addField(Form\Field\Captcha::factory('captcha', $oForm));
     // if form is valid
     if ($oForm->isSubmittedAndValid()) {
         $sEmail = $oForm->getField('email')->getValueFirst();
         // find user with particular e-mail
         $query = DB::query('SELECT u FROM \\Model\\User u WHERE u.email = :email');
         $query->param('email', $sEmail);
         $oResult = $query->single();
         /* @var $oResult User */
         if ($oResult instanceof User) {
             $this->sendRecoveryCode($oResult);
             $sMessage = __("Message has been sent on your e-mail address. Click on the link from it's content to recover password to your account.");
             Session::flash(Router::getCurrentUrl(), $sMessage);
         }
     }
     // return view
     return View::factory('user/frontend/recovery/default')->bind('oForm', $oForm);
 }
Example #7
0
 /**
  * Fields config for backend.
  *
  * @access   public
  * @return   ModelCore\MConfig
  * @since    1.0.0-alpha
  * @version  1.0.0-alpha
  */
 protected static function generateConfig()
 {
     $oConfig = parent::generateConfig();
     $currentRouteName = Router::getCurrentRouteName();
     $currentRouteParams = Router::getParams();
     $oConfig->addField(Form\Field\Hidden::singleton('id')->setLabel(__('ID'))->setDisabled());
     // BACKEND
     if ($currentRouteName === 'backend' && in_array($currentRouteParams['action'], ['edit', 'list'])) {
         $oConfig->addField(Form\Field\Text::singleton('name')->setLabel(__('File name'))->setDisabled());
         $oConfig->addField(Form\Field\Text::singleton('ext')->setLabel(__('File extension'))->setDisabled());
         $oConfig->addField(Form\Field\Text::singleton('file_path')->setLabel(__('File path'))->setDisabled());
         $oConfig->addField(Form\Field\Text::singleton('mime')->setLabel(__('File MIME type'))->setDisabled());
         $oConfig->addField(Form\Field\Text::singleton('size')->setLabel(__('File size'))->setTip(__('File size in KB.'))->setDisabled());
         $oConfig->addField(Form\Field\Select::singleton('status')->setOptions([0 => __('Temporary'), 1 => __('Permanent')])->setLabel(__('Status'))->setDisabled());
     }
     return $oConfig;
 }
Example #8
0
 /**
  * Fields config for backend.
  *
  * @access     public
  * @return     MConfig
  * @since      1.0.0
  * @version    2.1.0-dev
  */
 protected static function generateConfig()
 {
     # get all permissions list
     $aRoles = [];
     $aResult = DB::queryList('\\Model\\User\\Role')->execute();
     foreach ($aResult as $oRole) {
         /* @var $oRole User\Role */
         $aRoles[] = ['value' => $oRole->getId(), 'label' => $oRole->getName()];
     }
     # get config from parent
     $config = parent::generateConfig();
     # create fields
     $config->addField(FormField\Hidden::singleton('id')->setLabel(__('ID'))->setDisabled());
     $config->addField(FormFieldPassword::singleton('password')->setLabel(__('Password'))->addRulesSet(RulesSetBuilder\String::factory()->containNumbers(':value')->containText(':value')->containUppercase(':value')->containCustomCharacters(':value')));
     $config->addField(FormField\Text::singleton('login')->setLabel('Login')->addTipParagraph(__('This value can contain only letters, numbers and "-" or "_" characters.'))->setDisabled()->addRulesSet(RulesSetBuilder\String::factory()->onlyLettersNumsAndChars(':value', '\\-_', __('This value can contain only letters, numbers and "-" or "_" characters.')))->addRulesSet(RulesSetBuilder\Database::factory()->unique(':value', ':valuefrom:id', '\\Model\\User', 'login')));
     $config->addField(FormField\Text::singleton('email')->setLabel('E-mail')->setDisabled()->addRulesSet(RulesSetBuilder\String::factory()->email(':value'))->addRulesSet(RulesSetBuilder\Database::factory()->unique(':value', ':valuefrom:id', '\\Model\\User', 'email')));
     $config->addField(FormField\Text::singleton('firstname')->setLabel(__('Firstname'))->addRulesSet(RulesSetBuilder\String::factory()->onlyLetters(':value')));
     $config->addField(FormField\Text::singleton('lastname')->setLabel(__('Lastname'))->addRulesSet(RulesSetBuilder\String::factory()->onlyLetters(':value')));
     $config->addField(FormField\Text::singleton('nickname')->setLabel(__('Nickname')));
     $config->addField(FormField\ImageModel::singleton('image')->setBrokerModel('\\Model\\User\\Image')->setUploadPath('uploads/users/image')->setLabel(__('Image'))->addRulesSet(RulesSetBuilder\FileModel::factory()->allowedExt(':value', ['jpg', 'png', 'gif'])->maxSize(':value', 1024)));
     $config->addField(FormField\Text::singleton('city')->setLabel(__('City'))->addRulesSet(RulesSetBuilder\String::factory()->onlyLetters(':value')));
     $config->addField(FormField\Textarea::singleton('description')->setLabel(__('Description')));
     if (\UserPermissions::hasPerm('users_edit')) {
         $config->addField(CheckboxRelationFormField::singleton('roles')->setRelatedModelName('\\Model\\User\\Role')->setOptions($aRoles)->setLabel(__('Roles')));
     }
     $config->addFieldFormatter('registration_date', FieldFormatterDate::factory());
     $config->addFieldFormatter('login_date', FieldFormatterDate::factory());
     # return config
     return $config;
 }
Example #9
0
 /**
  * Fields config for backend.
  *
  * @static
  * @access   protected
  * @return   ModelCore\MConfig
  * @since    1.1.0-dev
  * @version  1.3.0-dev
  */
 protected static function generateConfig()
 {
     // get config from parent
     $config = parent::generateConfig();
     // get list of all routes
     $routesList = array_keys(Router::getRoutes());
     $routesOptions = [];
     foreach ($routesList as $value) {
         $routesOptions[$value] = ['value' => $value, 'label' => $value];
     }
     // BACKEND
     $config->addField(Form\Field\Hidden::singleton('id')->setDisabled());
     $config->addField(Form\Field\Select::singleton('route')->setOptions(array_combine($routesList, $routesList))->setLabel(__('Route'))->setRequired());
     $config->addField(Form\Field\Text::singleton('route_parameters')->setLabel(__('Route parameters'))->setQuantity(0));
     $config->addField(Form\Field\Text::singleton('url')->setLabel('URL'));
     $config->addField(Form\Field\Checkbox::singleton('active_routes')->setColumnsAmount(3)->setOptions($routesOptions)->setLabel(__('Active routes'))->setTip(__('List of routes for which the actual route will be active')));
     $config->addField(Form\Field\Text::singleton('classes')->setLabel(__('HTML classes'))->addRulesSet(Validator\RulesSetBuilder\String::factory()->regex(':value', '[0-9a-z_-]*')));
     // return config
     return $config;
 }
Example #10
0
 /**
  * Generate config object of particular Model.
  *
  * @overwritten
  * @static
  * @author     Krzysztof Trzos
  * @access     protected
  * @return    ModelCore\MConfig
  * @since      2015-01-10
  * @version    1.1.1-dev, 2015-08-10
  */
 public static function generateConfig()
 {
     // get all permissions list
     $aPermissions = [];
     $aResult = DB::queryList('\\Model\\User\\Permission')->execute();
     foreach ($aResult as $oPermission) {
         /* @var $oPermission Permission */
         $aPermissions[$oPermission->getId()] = ['value' => $oPermission->getId(), 'label' => $oPermission->getName()];
     }
     $config = parent::generateConfig();
     // return MConfig
     $config->addField(Form\Field\Hidden::singleton('id'));
     $config->addField(Form\Field\Text::singleton('name')->setRequired()->setLabel(__('Name')));
     $config->addField(Form\Field\CheckboxRelation::singleton('permissions')->setRelatedModelName('\\Model\\User\\Permission')->setColumnsAmount(3)->setOptions($aPermissions)->setLabel(__('Permissions')));
     return $config;
 }
Example #11
0
 /**
  * Fields config for backend.
  *
  * @access   public
  * @return   ModelCore\MConfig
  * @since    1.1.0-dev
  * @version  1.3.0-dev
  */
 protected static function generateConfig()
 {
     $config = parent::generateConfig();
     // BACKEND
     $config->addField(Form\Field\Hidden::singleton('id')->setDisabled());
     $config->addField(Form\Field\Text::singleton('working_name')->setLabel(__('Working name'))->addRulesSet(Validator\RulesSetBuilder\String::factory()->regex(':value', '^[a-z_]*$', __('The working name must contain only lowercase letters and underscores.'))));
     // return config
     return $config;
 }
Example #12
0
 /**
  * Fields config for backend.
  *
  * @access   public
  * @return   ModelCore\MConfig
  * @since    1.0.0
  * @version  1.0.3-dev, 2015-04-29
  */
 protected static function generateConfig()
 {
     # create config
     $config = parent::generateConfig();
     # create fields
     $config->addField(Form\Field\Hidden::singleton('id')->setLabel('ID')->setDisabled());
     $config->addField(Form\Field\Select::singleton('published')->setOptions(['Nie', 'Tak'])->setLabel(__('Published'))->setRequired()->addRulesSet(Validator\RulesSetBuilder::factory()->addRule(['in_array', [':value', [1, 0]]])));
     $config->addField(Form\Field\Text::singleton('title')->setLabel(__('Title'))->setRequired());
     $config->addField(Form\Field\Text::singleton('rewrite')->setRequired()->setLabel(__('URL alias')));
     $config->addField(Form\Field\Text::singleton('keywords')->setLabel(__('Keywords')));
     $config->addField(Form\Field\ImageModel::singleton('image')->setBrokerModel('\\Model\\Page\\Image')->setUploadPath('uploads/page')->setRequired()->setLabel(__('Image'))->addRulesSet(Validator\RulesSetBuilder\ImageModel::factory()->allowedExt(':value', ['jpg', 'gif', 'png', 'jpeg'])));
     $config->addField(Form\Field\FileModel::singleton('files')->setBrokerModel('\\Model\\Page\\File')->setUploadPath('uploads/page_files')->setQuantity(0)->setLabel(__('Attachments'))->addRulesSet(Validator\RulesSetBuilder\ImageModel::factory()->allowedExt(':value', ['txt', 'pdf', 'docx', 'doc', 'rtf', 'zip'])));
     $config->addField(Form\Field\Textarea::singleton('description')->setLabel(__('Description')));
     $config->addField(Form\Field\Tinymce::singleton('content')->setRequired()->setLabel(__('Content')));
     # return config
     return $config;
 }