public function action() { $user_id = Auth::currentUserId(); if ($user_id) { $html = LoginTemplate::getContent('Пользователь уже авторизован', false); LayoutBootstrap::render($html); return; } if (!array_key_exists('login', $_POST) && !array_key_exists('password', $_POST)) { $content = LoginTemplate::getContent(); LayoutBootstrap::render($content); return; } /* $is_ip_Banned = UMSHelper::checkBanByCurrentIP(); if ($is_ip_Banned) { $content = UMSSignonTemplate::getContent('Ваш вход заблокирован'); UMSLayoutTemplate::render("Авторизация", $content); return; } */ $login = POSTAccess::getOptionalPostValue('login'); $password = POSTAccess::getOptionalPostValue('password'); $user_id = Auth::getUserIdByCredentials($login, $password); if (!$user_id || $password == "") { $content = LoginTemplate::getContent('Неправильный адрес или пароль'); LayoutBootstrap::render($content); return; } $user_obj = User::factory($user_id); /* if ($user_obj->isBanned()) { $content = UMSSignonTemplate::getContent('Ваш аккаунт забанен'); UMSLayoutTemplate::render("Авторизация", $content); return; } if (!$user_obj->getEmailIsConfirmed()) { $resend_activation_main_url = UMSResendUMSEmailActivationAction::getUrl($user_obj->getId()); $content = UMSSignonTemplate::getContent('Ваша учетная запись не активирована.<br><a href="' . $resend_activation_main_url . '">Отправить ссылку повторно</a>'); UMSLayoutTemplate::render("Авторизация", $content); return; } */ Auth::startUserSession($user_obj->getId()); // set extra cookies if (!empty(AuthConfig::getExtraCookiesArr())) { $extra_cookies_arr = AuthConfig::getExtraCookiesArr(); foreach ($extra_cookies_arr as $cookie_name => $cookie_value) { setcookie($cookie_name, $cookie_value, time() + Auth::SESSION_LIFETIME_SECONDS, '/', Auth::sessionCookieDomain(), false, true); } } $redirect = '/'; $success_redirect_url = POSTAccess::getOptionalPostValue('success_redirect_url', ''); if ($success_redirect_url != '') { $redirect = $success_redirect_url; } \OLOG\Redirects::redirect($redirect); }
public static function optionalFieldValue($field_name) { $field_value = POSTAccess::getOptionalPostValue($field_name); // чтение возможных NULL if (POSTAccess::getOptionalPostValue($field_name . "___is_null", '') == "1") { $field_value = null; } return $field_value; }
protected static function swapModelWeightOperation() { $model_class_name = POSTAccess::getRequiredPostValue('_class_name'); // TODO: constant for field name \OLOG\CheckClassInterfaces::exceptionIfClassNotImplementsInterface($model_class_name, \OLOG\Model\InterfaceWeight::class); $model_id = POSTAccess::getRequiredPostValue('_id'); // TODO: constant for field name $context_fields_names_str = POSTAccess::getRequiredPostValue(CRUDTableWidgetWeight::FORMFIELD_CONTEXT_FIELDS_NAME); $context_fields_names_arr = explode(',', $context_fields_names_str); $context_arr = []; foreach ($context_fields_names_arr as $context_field_name) { $context_arr[$context_field_name] = NullablePostFields::optionalFieldValue($context_field_name); } /** @var InterfaceWeight $obj */ $obj = CRUDObjectLoader::createAndLoadObject($model_class_name, $model_id); $obj->swapWeights($context_arr); \OLOG\Redirects::redirectToSelf(); }
protected static function saveEditorFormOperation($url_to_redirect_after_save = '', $redirect_get_params_arr = []) { $model_class_name = POSTAccess::getRequiredPostValue(self::FIELD_CLASS_NAME); $object_id = self::saveOrUpdateObjectFromFormData(); if ($url_to_redirect_after_save != '') { $obj = CRUDObjectLoader::createAndLoadObject($model_class_name, $object_id); $redirect_url = $url_to_redirect_after_save; $redirect_url = CRUDCompiler::compile($redirect_url, ['this' => $obj]); $params_arr = []; foreach ($redirect_get_params_arr as $param => $value) { $params_arr[$param] = CRUDCompiler::compile($value, ['this' => $obj]); } if (!empty($redirect_get_params_arr)) { $redirect_url = $url_to_redirect_after_save . '?' . http_build_query($params_arr); } \OLOG\Redirects::redirect($redirect_url); } // keep get form \OLOG\Redirects::redirectToSelf(); }
public function action() { Exits::exit403If(!Operator::currentOperatorHasAnyOfPermissions([Permissions::PERMISSION_PHPAUTH_MANAGE_USERS])); $user_id = $this->user_id; $user_obj = User::factory($user_id); Exits::exit403If(!OwnerCheck::currentUserOwnsObj($user_obj)); Operations::matchOperation(self::OPERATION_SET_PASSWORD, function () use($user_id) { $new_password = POSTAccess::getOptionalPostValue(self::FIELD_NAME_PASSWORD); $new_password_hash = password_hash($new_password, PASSWORD_BCRYPT); $user_obj = User::factory($user_id); $user_obj->setPasswordHash($new_password_hash); $user_obj->save(); }); $html = ''; $html .= '<div class="row"><div class="col-md-6">'; $html .= self::commonParamsForm($user_id); $html .= self::passwordForm(); $html .= self::userOperatorsTable($user_id); $html .= self::adminParamsForm($user_id); $html .= '</div><div class="col-md-6">'; if (Operator::currentOperatorHasAnyOfPermissions([Permissions::PERMISSION_PHPAUTH_MANAGE_USERS_PERMISSIONS])) { $html .= '<h2>Разрешения</h2>'; $html .= HTML::div('', '', function () use($user_id) { $new_permissiontouser_obj = new PermissionToUser(); $new_permissiontouser_obj->setUserId($user_id); echo CRUDTable::html(PermissionToUser::class, '', [new \OLOG\CRUD\CRUDTableColumn('Разрешение', new \OLOG\CRUD\CRUDTableWidgetText('{' . Permission::class . '.{this->permission_id}->title}')), new \OLOG\CRUD\CRUDTableColumn('Удалить', new \OLOG\CRUD\CRUDTableWidgetDelete())], [new CRUDTableFilterEqualInvisible('user_id', $user_id)], ''); echo CallapsibleWidget::buttonAndCollapse('Показать все неназначенные разрешения', function () use($user_id) { $html = CRUDTable::html(Permission::class, '', [new CRUDTableColumn('Разрешение', new CRUDTableWidgetTextWithLink('{this->title}', (new PermissionAddToUserAction($user_id, '{this->id}'))->url())), new CRUDTableColumn('', new CRUDTableWidgetTextWithLink('Добавить пользователю', (new PermissionAddToUserAction($user_id, '{this->id}'))->url(), 'btn btn-default btn-xs'))], [new CRUDTableFilterNotInInvisible('id', PermissionToUser::getPermissionIdsArrForUserId($user_id))], 'id', '79687tg8976rt87'); return $html; }); }); } $html .= self::userInGroupsTable($user_id); $html .= '</div></div>'; AdminLayoutSelector::render($html, $this); }