public function actionSignup() { $this->needAuthenticate(); if (Param::post('employee-registration-form-sign-up', false)->exists()) { $name = Param::post('employee-registration-form-name', false)->noEmpty("Запоните поле \"Имя\".")->asString(true, "Недопустимое значение поля \"Имя\"."); $email = Param::post('employee-registration-form-email', false)->noEmpty("Заполните поле \"Email\"!")->asEmail(true, "Недопустимое значение поля \"Email\"."); $password = Param::post('employee-registration-form-password', false)->noEmpty("Заполните поле \"Пароль\".")->asString(true, "Недопустимое значение поля \"Пароль\"."); $passwordRepeat = Param::post('employee-registration-form-password-repeat', false)->noEmpty("Заполните поле \"Повтор пароля\".")->asString(true, "Недопустимое значение поля \"Повтор пароля\"."); if ($password != $passwordRepeat) { SCMSNotificationLog::instance()->pushError("\"Пароль\" и \"Повтор пароля\" должны быть одинаковы."); } if (SCMSNotificationLog::instance()->hasProblems()) { $this->Response->send(); exit; } /** @var Employee $oEmployee */ $oEmployee = DataSource::factory(Employee::cls()); $oEmployee->name = $name; $oEmployee->email = $email; $oEmployee->password = $this->EmployeeAuthentication->encodePassword($password, Employee::SALT); $oEmployee->active = true; $oEmployee->deleted = false; $oEmployee->commit(); SCMSNotificationLog::instance()->pushMessage("Успешно зарегистрирован!"); $this->Response->send('/admin/modules/employees'); exit; } else { SCMSNotificationLog::instance()->pushError("Форма регистрации сотрудника заполнена неверно!"); } $this->Response->send(); }
public function actionIndex() { $this->needAuthenticate(); $pk = Param::get('id', true)->asInteger(true, 'Не указан обязательный параметр.'); /** @var Employee $oEmployee */ $oEmployee = DataSource::factory(Employee::cls(), $pk); $view = new ViewEmployeeEdit(); $view->employee = $oEmployee; // Подготовка хлебных крошек $viewBreadcrumbs = new ViewBreadcrumbs(); $viewBreadcrumbs->Breadcrumbs = [new Breadcrumb('Панель управления', '/admin'), new Breadcrumb('Сотрудники', '/modules/employees'), new Breadcrumb("Редактирование \"{$oEmployee->email}\"", '')]; $this->Frame->bindView('breadcrumbs', $viewBreadcrumbs); $this->Frame->bindView('content', $view); $this->Frame->render(); }
public function actionIndex() { $this->needAuthenticate(); $employeeId = Param::get('id')->noEmpty('Параметр обязателен для заполнения.')->asInteger(true, "Неверно задан параметр."); /** @var Employee $oEmployee */ $oEmployee = DataSource::factory(Employee::cls(), $employeeId); if ($oEmployee->id) { SCMSNotificationLog::instance()->pushMessage("Сотрудник \"{$oEmployee->name}\" успешно удалён."); $oEmployee->deleted = true; $oEmployee->commit(); } else { SCMSNotificationLog::instance()->pushError("Сотрутник с ID {$employeeId} не найден"); } $this->Response->send(); }
public function actionIndex() { $this->needAuthenticate(); $employeeId = Param::post('employee-id')->asInteger(true, 'Не указан обязательный параметр.'); $name = Param::post('employee-name')->noEmpty('Поле "Имя" должно быть заполнено.')->asString(); $email = Param::post('employee-email')->noEmpty('Поле "Email" должно быть заполнено.')->asString(); $currentEmployeePassword = Param::post('employee-current-password')->asString(); $newPassword = Param::post('employee-new-password')->asString(); $newPasswordRepeat = Param::post('employee-new-password-repeat')->asString(); if (!empty($newPassword)) { if (!$this->EmployeeAuthentication->verifyPassword($currentEmployeePassword, $this->EmployeeAuthentication->getCurrentUser()->password)) { SCMSNotificationLog::instance()->pushError('Вы указали неверный пароль.'); } if ($newPassword != $newPasswordRepeat) { SCMSNotificationLog::instance()->pushError('"Новый пароль" и "Повтор нового пароля" должны быть заполены одинаково.'); } } /** @var Employee $oEmployee */ $oEmployee = DataSource::factory(Employee::cls(), $employeeId); if (!$oEmployee->getPrimaryKey()) { SCMSNotificationLog::instance()->pushError('Редактируемый сотрудник не определён.'); } /** @var Employee $aEmployee */ $aEmployee = DataSource::factory(Employee::cls()); $aEmployee->builder()->where("{$aEmployee->getPrimaryKeyName()}<>{$employeeId}")->whereAnd()->where('deleted=0')->whereAnd()->where('active=1')->whereAnd()->where("email='{$email}'")->limit(1); $aEmployees = $aEmployee->findAll(); if (sizeof($aEmployees) > 0) { SCMSNotificationLog::instance()->pushError('Данный Email уже используется другим сотрудником.'); } if (!SCMSNotificationLog::instance()->hasProblems()) { $oEmployee->name = $name; $oEmployee->email = $email; $oEmployee->password = $this->EmployeeAuthentication->encodePassword($newPassword, Employee::SALT); $oEmployee->commit(); SCMSNotificationLog::instance()->pushMessage("Сотрудник \"{$oEmployee->email}\" успешно отредактирован"); $redirect = ''; if (Param::post('employee-accept', false)->exists()) { $redirect = '/admin/modules/employees/'; } else { if ($employeeId == 1) { $redirect = "/admin/modules/employees/edit/?pk={$oEmployee->getPrimaryKey()}"; } } $this->Response->send($redirect); } else { $this->Response->send(); } }
/** * Аутентификация * * @param string $login * @param string $password * @return bool */ public function signIn($login, $password) { /** @var Employee $oEmployees */ $oEmployees = DataSource::factory(Employee::cls()); $oEmployees->builder()->where("email='{$login}'")->whereAnd()->where('active=1'); /** @var Employee[] $aEmployees */ $aEmployees = $oEmployees->findAll(); if (empty($aEmployees)) { return false; } $oEmployee = $aEmployees[0]; if (!$this->verifyPassword($password . Employee::SALT, $oEmployee->password)) { return false; } $this->oCurrentEmployee = $oEmployee; return true; }