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; }
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; }