public function getAllUsers($onlyActive = false, $withOutGroups = false, $filterId = array(), $fields = array())
 {
     if (count($fields) == 0) {
         $fields = array('id as id', 'username as name', 'role as role', 'isActive as active');
     }
     /**
      * @var $entity User
      */
     $usersAndLinks = $this->getUsersAndLinks($onlyActive, $withOutGroups, $filterId, $fields);
     $usersSelected = $usersAndLinks['users'];
     $links = $usersAndLinks['links'];
     foreach ($usersSelected as $key => $userSelected) {
         if (isset($userSelected['role'])) {
             $usersSelected[$key]['role'] = User::getRoleList()[$userSelected['role']];
         }
         $usersSelected[$key]['groups'] = array();
     }
     if (!$withOutGroups) {
         foreach ($links as $link) {
             if ($withOutGroups && count($link['uId']) > 0) {
                 continue;
             }
             foreach ($usersSelected as $key => $value) {
                 if ($link['uId'] == $value['id']) {
                     $usersSelected[$key]['groups'][] = $link['gId'];
                 }
             }
         }
     }
     return $usersSelected;
 }
예제 #2
0
 public function getUserEditForm($action, UserRepository $userRepository, $userId = 0)
 {
     $form = new Form('user_edit_form', $action);
     $currentYear = date('Y', time());
     $form->addField((new FieldText('username', 'Логин'))->addRule(new NotEmpty())->addRule(new IsUniqueInMethod($userRepository, 'isUniqueUser', array('username', $userId))))->addField((new FieldText('password', 'Пароль', array('class' => 'password')))->addRule(new NotEmpty())->addRule(new Length(6, 50)))->addField((new FieldText('email', 'E-mail'))->addRule(new IsEmail())->addRule(new IsUniqueInMethod($userRepository, 'isUniqueUser', array('email', $userId))))->addField(new FieldDropDawnList('role', 'Роль', User::getRoleList()))->addField(new FieldCheckBox('isActive', 'Активен', array(), true))->addField(new FieldText('firstName', 'Фамилия'))->addField(new FieldText('name', 'Имя'))->addField(new FieldText('secondName', 'Отчество'))->addField(new FieldText('name', 'Имя'))->addField(new FieldDateTimeLists('dateBorn', 'Дата рождения', $currentYear - 115, $currentYear - 15, true))->addField((new FieldText('phone', 'Телефон', array(), '80000000000'))->addRule(new IsMatch('/d?/', 'Поле телефон должно содержать только цифры')))->addField(new FieldText('workPosition', 'Должность'))->addField(new FieldText('workPlace', 'Место работы'))->addField(new FieldSubmit('submit', 'submit'));
     return $form;
 }