change dabestaniha to mahak
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# dabestaniha-authenticate-bridge
|
# mahak-authenticate-bridge
|
||||||
|
|
||||||
Authenticate WordPress user via json web token from Laravel Application.
|
Authenticate WordPress user via json web token from Laravel Application.
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ Authenticate WordPress user via json web token from Laravel Application.
|
|||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Send users to:
|
Send users to:
|
||||||
https://your-wp-site.com/dabestaniha/login/?token=TOKEN
|
https://your-wp-site.com/mahak/login/?token=TOKEN
|
||||||
|
|
||||||
With required data encoded in the token.
|
With required data encoded in the token.
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plugin Name: Dabestaniha Authenticate Bridge
|
* Plugin Name: Mahak Authenticate Bridge
|
||||||
* Description: Authenticate WordPress user via json web token from Mahakiha Application.
|
* Description: Authenticate WordPress user via json web token from Mahakiha Application.
|
||||||
* Version: 1.0
|
* Version: 1.0
|
||||||
* Author: Dabestaniha
|
* Author: Dabestaniha
|
||||||
*
|
*
|
||||||
* Example: https://wordpress.test/dabestaniha/login/?token=eyJ0...
|
* Example: https://wordpress.test/mahak/login/?token=eyJ0...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once __DIR__.'/vendor/autoload.php';
|
require_once __DIR__.'/vendor/autoload.php';
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
namespace Dabestaniha\AuthenticateBridge\App\Http\Controllers;
|
namespace Dabestaniha\AuthenticateBridge\App\Http\Controllers;
|
||||||
|
|
||||||
use Dabestaniha\AuthenticateBridge\App\Http\Requests\DabestanihaAuthenticateRequest;
|
use Dabestaniha\AuthenticateBridge\App\Http\Requests\MahakAuthenticateRequest;
|
||||||
use ReflectionMethod;
|
use ReflectionMethod;
|
||||||
use Firebase\JWT;
|
use Firebase\JWT;
|
||||||
|
|
||||||
class AuthenticateController extends InvocableController
|
class AuthenticateController extends InvocableController
|
||||||
{
|
{
|
||||||
public function __invoke(DabestanihaAuthenticateRequest $request)
|
public function __invoke(MahakAuthenticateRequest $request)
|
||||||
{
|
{
|
||||||
$token = $request->string('token');
|
$token = $request->string('token');
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ class AuthenticateController extends InvocableController
|
|||||||
$identifier_name = get_configured_option('user-identifier');
|
$identifier_name = get_configured_option('user-identifier');
|
||||||
$identifier_value = $payload[$identifier_name] ?? null;
|
$identifier_value = $payload[$identifier_name] ?? null;
|
||||||
|
|
||||||
$name = $payload['name'] ?? config('da.translates.new-user');
|
$name = $payload['name'] ?? config('mahak.translates.new-user');
|
||||||
$user_id = $this->find_or_create_user($identifier_name, $identifier_value, $name);
|
$user_id = $this->find_or_create_user($identifier_name, $identifier_value, $name);
|
||||||
|
|
||||||
$this->login_user($user_id);
|
$this->login_user($user_id);
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ abstract class InvocableController
|
|||||||
{
|
{
|
||||||
public static function resolve(): void
|
public static function resolve(): void
|
||||||
{
|
{
|
||||||
$r = new ReflectionMethod(static::class, '__invoke');
|
$reflection = new ReflectionMethod(static::class, '__invoke');
|
||||||
|
|
||||||
$args = [];
|
$args = [];
|
||||||
foreach ($r->getParameters() as $param) {
|
foreach ($reflection->getParameters() as $param) {
|
||||||
$class = $param->getType()->getName();
|
$class = $param->getType()->getName();
|
||||||
|
|
||||||
if (is_subclass_of($class, BaseFormRequest::class)) {
|
if (is_subclass_of($class, BaseFormRequest::class)) {
|
||||||
|
|||||||
@@ -6,55 +6,55 @@ class SettingsPageFormController extends InvocableController
|
|||||||
{
|
{
|
||||||
public function __invoke()
|
public function __invoke()
|
||||||
{
|
{
|
||||||
foreach (config('da.options') as $configured => $options_key) {
|
foreach (config('mahak.options') as $configured => $options_key) {
|
||||||
register_setting(config('da.settings-group'), $options_key);
|
register_setting(config('mahak.settings-group'), $options_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
add_settings_section(
|
add_settings_section(
|
||||||
config('da.section-id'),
|
config('mahak.section-id'),
|
||||||
config('da.translations.section-id'),
|
config('mahak.translations.section-id'),
|
||||||
null,
|
null,
|
||||||
config('da.settings-page')
|
config('mahak.settings-page')
|
||||||
);
|
);
|
||||||
|
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
config('da.options.user-identifier'),
|
config('mahak.options.user-identifier'),
|
||||||
config('da.translations.user-identifier'),
|
config('mahak.translations.user-identifier'),
|
||||||
fn () => $this->user_identifier(),
|
fn () => $this->user_identifier(),
|
||||||
config('da.settings-page'),
|
config('mahak.settings-page'),
|
||||||
config('da.section-id')
|
config('mahak.section-id')
|
||||||
);
|
);
|
||||||
|
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
config('da.options.jwt-secret'),
|
config('mahak.options.jwt-secret'),
|
||||||
config('da.translations.jwt-secret'),
|
config('mahak.translations.jwt-secret'),
|
||||||
fn () => $this->jwt_secret(),
|
fn () => $this->jwt_secret(),
|
||||||
config('da.settings-page'),
|
config('mahak.settings-page'),
|
||||||
config('da.section-id')
|
config('mahak.section-id')
|
||||||
);
|
);
|
||||||
|
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
config('da.options.login-route'),
|
config('mahak.options.login-route'),
|
||||||
config('da.translations.login-route'),
|
config('mahak.translations.login-route'),
|
||||||
fn () => $this->login_route(),
|
fn () => $this->login_route(),
|
||||||
config('da.settings-page'),
|
config('mahak.settings-page'),
|
||||||
config('da.section-id')
|
config('mahak.section-id')
|
||||||
);
|
);
|
||||||
|
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
config('da.options.after-login-route'),
|
config('mahak.options.after-login-route'),
|
||||||
config('da.translations.after-login-route'),
|
config('mahak.translations.after-login-route'),
|
||||||
fn () => $this->after_login_route(),
|
fn () => $this->after_login_route(),
|
||||||
config('da.settings-page'),
|
config('mahak.settings-page'),
|
||||||
config('da.section-id')
|
config('mahak.section-id')
|
||||||
);
|
);
|
||||||
|
|
||||||
$loginRouteOptionName = config('da.options.login-route');
|
$loginRouteOptionName = config('mahak.options.login-route');
|
||||||
add_filter("pre_update_option_{$loginRouteOptionName}", function ($value) {
|
add_filter("pre_update_option_{$loginRouteOptionName}", function ($value) {
|
||||||
return trim($value, '/');
|
return trim($value, '/');
|
||||||
});
|
});
|
||||||
|
|
||||||
$afterLoginRouteOptionName = config('da.options.after-login-route');
|
$afterLoginRouteOptionName = config('mahak.options.after-login-route');
|
||||||
add_filter("pre_update_option_{$afterLoginRouteOptionName}", function ($value) {
|
add_filter("pre_update_option_{$afterLoginRouteOptionName}", function ($value) {
|
||||||
return trim($value, '/');
|
return trim($value, '/');
|
||||||
});
|
});
|
||||||
@@ -62,14 +62,14 @@ class SettingsPageFormController extends InvocableController
|
|||||||
|
|
||||||
public function user_identifier(): void
|
public function user_identifier(): void
|
||||||
{
|
{
|
||||||
$name = config('da.options.user-identifier');
|
$name = config('mahak.options.user-identifier');
|
||||||
$value = get_option($name, 'mobile');
|
$value = get_option($name, 'mobile');
|
||||||
|
|
||||||
$html = "<select name='$name'>";
|
$html = "<select name='$name'>";
|
||||||
|
|
||||||
foreach (config('da.user-identifiers') as $identifier) {
|
foreach (config('mahak.user-identifiers') as $identifier) {
|
||||||
$selected = $value === $identifier ? "selected='selected'" : null;
|
$selected = $value === $identifier ? "selected='selected'" : null;
|
||||||
$translate = config("da.translations.$identifier");
|
$translate = config("mahak.translations.$identifier");
|
||||||
$html .= "<option value='$identifier' $selected>$translate</option>";
|
$html .= "<option value='$identifier' $selected>$translate</option>";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,15 +79,15 @@ class SettingsPageFormController extends InvocableController
|
|||||||
|
|
||||||
public function jwt_secret(): void
|
public function jwt_secret(): void
|
||||||
{
|
{
|
||||||
$name = config('da.options.jwt-secret');
|
$name = config('mahak.options.jwt-secret');
|
||||||
$value = esc_attr(get_option($name, ''));
|
$value = esc_attr(get_option($name, ''));
|
||||||
echo "<input type='text' name='$name' value='$value' class='regular-text ltr' />";
|
echo "<input type='text' name='$name' value='$value' class='regular-text ltr' />";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function login_route(): void
|
public function login_route(): void
|
||||||
{
|
{
|
||||||
$name = config('da.options.login-route');
|
$name = config('mahak.options.login-route');
|
||||||
$value = esc_attr(get_option($name, config('da.login_route_default')));
|
$value = esc_attr(get_option($name, config('mahak.login_route_default')));
|
||||||
echo '<div class="ltr" style="float: right; display: flex; align-items: center; gap: 5px;">';
|
echo '<div class="ltr" style="float: right; display: flex; align-items: center; gap: 5px;">';
|
||||||
echo '<span style="color: #666;">'.home_url('/').'</span>';
|
echo '<span style="color: #666;">'.home_url('/').'</span>';
|
||||||
echo "<input type='text' name='$name' value='$value' class='regular-text' />";
|
echo "<input type='text' name='$name' value='$value' class='regular-text' />";
|
||||||
@@ -96,8 +96,8 @@ class SettingsPageFormController extends InvocableController
|
|||||||
|
|
||||||
public function after_login_route(): void
|
public function after_login_route(): void
|
||||||
{
|
{
|
||||||
$name = config('da.options.after-login-route');
|
$name = config('mahak.options.after-login-route');
|
||||||
$value = esc_attr(get_option($name, config('da.after_login_route_default')));
|
$value = esc_attr(get_option($name, config('mahak.after_login_route_default')));
|
||||||
echo '<div class="ltr" style="float: right; display: flex; align-items: center; gap: 5px;">';
|
echo '<div class="ltr" style="float: right; display: flex; align-items: center; gap: 5px;">';
|
||||||
echo '<span style="color: #666;">'.home_url('/').'</span>';
|
echo '<span style="color: #666;">'.home_url('/').'</span>';
|
||||||
echo "<input type='text' name='$name' value='$value' class='regular-text' />";
|
echo "<input type='text' name='$name' value='$value' class='regular-text' />";
|
||||||
|
|||||||
@@ -7,23 +7,23 @@ class SettingsPageMenuController extends InvocableController
|
|||||||
public function __invoke()
|
public function __invoke()
|
||||||
{
|
{
|
||||||
add_options_page(
|
add_options_page(
|
||||||
config('da.translations.settings-page-title'),
|
config('mahak.translations.settings-page-title'),
|
||||||
config('da.translations.settings-page-menu'),
|
config('mahak.translations.settings-page-menu'),
|
||||||
'manage_options',
|
'manage_options',
|
||||||
config('da.settings-page'),
|
config('mahak.settings-page'),
|
||||||
fn() => $this->dabestaniha_authenticate_settings_page(),
|
fn() => $this->mahak_authenticate_settings_page(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function dabestaniha_authenticate_settings_page(): void
|
function mahak_authenticate_settings_page(): void
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<h1><?= config('da.translations.settings-page-title') ?></h1>
|
<h1><?= config('mahak.translations.settings-page-title') ?></h1>
|
||||||
<form method="post" action="options.php">
|
<form method="post" action="options.php">
|
||||||
<?php
|
<?php
|
||||||
settings_fields(config('da.settings-group'));
|
settings_fields(config('mahak.settings-group'));
|
||||||
do_settings_sections(config('da.settings-page'));
|
do_settings_sections(config('mahak.settings-page'));
|
||||||
submit_button();
|
submit_button();
|
||||||
?>
|
?>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
+2
-2
@@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
namespace Dabestaniha\AuthenticateBridge\App\Http\Requests;
|
namespace Dabestaniha\AuthenticateBridge\App\Http\Requests;
|
||||||
|
|
||||||
class DabestanihaAuthenticateRequest extends BaseFormRequest
|
class MahakAuthenticateRequest extends BaseFormRequest
|
||||||
{
|
{
|
||||||
|
|
||||||
public function getRequestRoutePath(): string
|
public function getRequestRoutePath(): string
|
||||||
{
|
{
|
||||||
return get_configured_option('login-route');
|
return get_configured_option('login-route', config('mahak.login_route_default'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules(): array
|
public function rules(): array
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'settings-page' => 'dabestaniha-authenticate-settings',
|
'settings-page' => 'mahak-authenticate-settings',
|
||||||
'settings-group' => 'dabestaniha_authenticate_settings',
|
'settings-group' => 'mahak_authenticate_settings',
|
||||||
'section-id' => 'dabestaniha_authenticate_main',
|
'section-id' => 'mahak_authenticate_main',
|
||||||
|
|
||||||
|
|
||||||
'options' => [
|
'options' => [
|
||||||
'jwt-secret' => 'da_jwt_secret',
|
'jwt-secret' => 'mahak_jwt_secret',
|
||||||
'user-identifier' => 'da_user_identifier',
|
'user-identifier' => 'mahak_user_identifier',
|
||||||
'login-route' => 'da_login_route',
|
'login-route' => 'mahak_login_route',
|
||||||
'after-login-route' => 'da_after_login_route',
|
'after-login-route' => 'mahak_after_login_route',
|
||||||
],
|
],
|
||||||
|
|
||||||
'user-identifiers' => [
|
'user-identifiers' => [
|
||||||
@@ -19,7 +19,7 @@ return [
|
|||||||
'username',
|
'username',
|
||||||
],
|
],
|
||||||
|
|
||||||
'login_route_default' => 'dabestaniha/login',
|
'login_route_default' => 'mahak/login',
|
||||||
'after_login_route_default' => 'dashboard',
|
'after_login_route_default' => 'dashboard',
|
||||||
|
|
||||||
'translations' => [
|
'translations' => [
|
||||||
@@ -28,12 +28,12 @@ return [
|
|||||||
'username' => 'نام کاربری',
|
'username' => 'نام کاربری',
|
||||||
|
|
||||||
'section-id' => 'تنظیمات عمومی',
|
'section-id' => 'تنظیمات عمومی',
|
||||||
'settings-page-title' => 'تنظیمات احراز هویت دبستانی ها',
|
'settings-page-title' => 'تنظیمات احراز هویت ماهک',
|
||||||
'settings-page-menu' => 'احراز هویت دبستانی ها',
|
'settings-page-menu' => 'احراز هویت ماهک',
|
||||||
|
|
||||||
'jwt-secret' => 'کلید JWT',
|
'jwt-secret' => 'کلید JWT',
|
||||||
'user-identifier' => 'فیلد شناسایی کاربر',
|
'user-identifier' => 'فیلد شناسایی کاربر',
|
||||||
'login-route' => 'مسیر لاگین دبستانی ها',
|
'login-route' => 'مسیر لاگین ماهک',
|
||||||
'after-login-route' => 'مسیر بعد از لاگین',
|
'after-login-route' => 'مسیر بعد از لاگین',
|
||||||
|
|
||||||
'new-user' => 'کاربر جدید',
|
'new-user' => 'کاربر جدید',
|
||||||
+3
-3
@@ -27,14 +27,14 @@ function setup_configs(): void
|
|||||||
$configs[basename($configs_file, '.php')] = include $configs_file;
|
$configs[basename($configs_file, '.php')] = include $configs_file;
|
||||||
}
|
}
|
||||||
|
|
||||||
define("DA_CASHED_CONFIG", $configs);
|
define("MAHAK_CASHED_CONFIG", $configs);
|
||||||
}
|
}
|
||||||
setup_configs();
|
setup_configs();
|
||||||
|
|
||||||
if (!function_exists('config')) {
|
if (!function_exists('config')) {
|
||||||
function config(string $key, ?string $default = null): null|string|array
|
function config(string $key, ?string $default = null): null|string|array
|
||||||
{
|
{
|
||||||
$value = DA_CASHED_CONFIG;
|
$value = MAHAK_CASHED_CONFIG;
|
||||||
foreach (explode('.', $key) as $key) {
|
foreach (explode('.', $key) as $key) {
|
||||||
$value = $value[$key] ?? $default;
|
$value = $value[$key] ?? $default;
|
||||||
}
|
}
|
||||||
@@ -46,6 +46,6 @@ if (!function_exists('config')) {
|
|||||||
if (!function_exists('get_configured_option')) {
|
if (!function_exists('get_configured_option')) {
|
||||||
function get_configured_option(string $key, ?string $default = null): null|string|array
|
function get_configured_option(string $key, ?string $default = null): null|string|array
|
||||||
{
|
{
|
||||||
return get_option(config("da.options.$key"), $default);
|
return get_option(config("mahak.options.$key"), $default);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user