Browse Source

first working account controllers (login, register, remind_password & reset_password)

- updated languages (added infoRemindSuccess & infoResetSuccess)
- added en/Account language
- added Account/Remind_password & Account/Reset_password Controllers & Views
- updated Account/Login & Account/Register Controllers & Views
- renamed views Aauth/Reset & Aauth/ResetSuccess to Aauth/RemindPassword & Aauth/ResetPassword
- updated LoginTokenModel
- updated Libraries/Aauth
- updated Config/Aauth
v3-dev
REJack 7 years ago
parent
commit
0b040a8a9e
No known key found for this signature in database
GPG Key ID: 4A44B48700429F46
  1. 12
      application/Config/Aauth.php
  2. 6
      application/Controllers/Account/Login.php
  3. 4
      application/Controllers/Account/Register.php
  4. 71
      application/Controllers/Account/Remind_password.php
  5. 74
      application/Controllers/Account/Reset_password.php
  6. 4
      application/Language/de/Aauth.php
  7. 2
      application/Language/en/Aauth.php
  8. 57
      application/Language/en/Account.php
  9. 2
      application/Language/es/Aauth.php
  10. 70
      application/Language/fa/Aauth.php
  11. 70
      application/Language/fr/Aauth.php
  12. 70
      application/Language/id/Aauth.php
  13. 70
      application/Language/ru/Aauth.php
  14. 70
      application/Language/sv/Aauth.php
  15. 70
      application/Language/zh-CN/Aauth.php
  16. 70
      application/Language/zh-TW/Aauth.php
  17. 43
      application/Libraries/Aauth.php
  18. 1
      application/Models/Aauth/LoginTokenModel.php
  19. 0
      application/Views/Aauth/RemindPassword.php
  20. 0
      application/Views/Aauth/ResetPassword.php
  21. 40
      application/Views/Account/Login.php
  22. 44
      application/Views/Account/Register.php
  23. 33
      application/Views/Account/RemindPassword.php
  24. 33
      application/Views/Account/ResetPassword.php

12
application/Config/Aauth.php

@ -42,21 +42,21 @@ class Aauth extends BaseConfig
| 'linkResetPassword' | 'linkResetPassword'
| |
| Link for reset_password without site_url or base_url | Link for reset_password without site_url or base_url
| (default: '/account/reset_password') | (default: '/account/reset_password/index')
| |
| 'linkVerification' | 'linkVerification'
| |
| Link for verification without site_url or base_url | Link for verification without site_url or base_url
| (default: '/account/verification') | (default: '/account/verification/index')
| 'linkVerification' | 'linkVerification'
| |
| Redirect path to TOTP Verification page | Redirect path to TOTP Verification page
| (default: '/account/twofactor_verification') | (default: '/account/twofactor_verification/index')
*/ */
public $linkNoPermission = false; public $linkNoPermission = false;
public $linkResetPassword = '/account/reset_password'; public $linkResetPassword = '/account/reset_password/index';
public $linkVerification = '/account/verification'; public $linkVerification = '/account/verification/index';
public $linkTotp = '/account/twofactor_verification'; public $linkTotp = '/account/twofactor_verification/index';
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

6
application/Controllers/Account/Login.php

@ -43,11 +43,11 @@ class Login extends Controller
/** /**
* Index * Index
* *
* @return redirect * @return void
*/ */
public function index() public function index()
{ {
if ($input = $this->request->getVar()) if ($input = $this->request->getPost())
{ {
$identifier = ($this->config->loginUseUsername ? $input['username'] : $input['email']); $identifier = ($this->config->loginUseUsername ? $input['username'] : $input['email']);
@ -57,7 +57,7 @@ class Login extends Controller
} }
else else
{ {
return redirect()->to('/account'); redirect()->to('/account');
} }
} }

4
application/Controllers/Account/Register.php

@ -48,7 +48,7 @@ class Register extends Controller
*/ */
public function index() public function index()
{ {
if ($input = $this->request->getVar()) if ($input = $this->request->getPost())
{ {
if (! $this->aauth->createUser($input['email'], $input['password'], $input['username'])) if (! $this->aauth->createUser($input['email'], $input['password'], $input['username']))
{ {
@ -56,7 +56,7 @@ class Register extends Controller
} }
else else
{ {
$data['info'] = $this->aauth->printInfos('<br />', true); $data['infos'] = $this->aauth->printInfos('<br />', true);
} }
} }

71
application/Controllers/Account/Remind_password.php

@ -0,0 +1,71 @@
<?php
/**
* CodeIgniter-Aauth
*
* Aauth is a User Authorization Library for CodeIgniter 4.x, which aims to make
* easy some essential jobs such as login, permissions and access operations.
* Despite ease of use, it has also very advanced features like groupping,
* access management, public access etc..
*
* @package CodeIgniter-Aauth
* @author Magefly Team
* @copyright 2014-2017 Emre Akay
* @copyright 2018 Magefly
* @license https://opensource.org/licenses/MIT MIT License
* @link https://github.com/magefly/CodeIgniter-Aauth
*/
namespace App\Controllers\Account;
use CodeIgniter\Controller;
use Config\Aauth as AauthConfig;
use App\Libraries\Aauth;
use App\Models\Aauth\UserVariableModel as UserVariableModel;
use Config\Services;
/**
* Aauth Accont/Remind_password Controller
*
* @package CodeIgniter-Aauth
*/
class Remind_password extends Controller
{
/**
* Constructor
*/
public function __construct()
{
$this->config = new AauthConfig();
$this->aauth = new Aauth();
$this->request = Services::request();
helper('form');
}
/**
* Index
*
* @return void
*/
public function index()
{
if ($input = $this->request->getPost())
{
if (! $this->aauth->remindPassword($input['email']))
{
$data['errors'] = $this->aauth->printErrors('<br />', true);
}
else
{
$data['infos'] = $this->aauth->printInfos('<br />', true);
}
}
$data['cssFiles'] = [
'/assets/css/login.css'
];
echo view('Templates/HeaderBlank', $data);
echo view('Account/RemindPassword', $data);
echo view('Templates/FooterBlank', $data);
}
}

74
application/Controllers/Account/Reset_password.php

@ -0,0 +1,74 @@
<?php
/**
* CodeIgniter-Aauth
*
* Aauth is a User Authorization Library for CodeIgniter 4.x, which aims to make
* easy some essential jobs such as login, permissions and access operations.
* Despite ease of use, it has also very advanced features like groupping,
* access management, public access etc..
*
* @package CodeIgniter-Aauth
* @author Magefly Team
* @copyright 2014-2017 Emre Akay
* @copyright 2018 Magefly
* @license https://opensource.org/licenses/MIT MIT License
* @link https://github.com/magefly/CodeIgniter-Aauth
*/
namespace App\Controllers\Account;
use CodeIgniter\Controller;
use Config\Aauth as AauthConfig;
use App\Libraries\Aauth;
use App\Models\Aauth\UserVariableModel as UserVariableModel;
use Config\Services;
/**
* Aauth Accont/Reset_password Controller
*
* @package CodeIgniter-Aauth
*/
class Reset_password extends Controller
{
/**
* Constructor
*/
public function __construct()
{
$this->config = new AauthConfig();
$this->aauth = new Aauth();
$this->request = Services::request();
helper('form');
}
/**
* Index
*
* @param string $verificationCode Verification Code
*
* @return void
*/
public function index(string $verificationCode = '')
{
if ($input = $this->request->getPost())
{
if (! $this->aauth->resetPassword($input['verification_code']))
{
$data['errors'] = $this->aauth->printErrors('<br />', true);
}
else
{
$data['infos'] = $this->aauth->printInfos('<br />', true);
}
}
$data['verificationCode'] = $verificationCode;
$data['cssFiles'] = [
'/assets/css/login.css'
];
echo view('Templates/HeaderBlank', $data);
echo view('Account/ResetPassword', $data);
echo view('Templates/FooterBlank', $data);
}
}

4
application/Language/de/Aauth.php

@ -34,7 +34,9 @@ return [
'textResetSuccess' => 'Du hast dein Passwort erfolgreich zurückgesetzt. Dein neues Passwort lautet: {password}', 'textResetSuccess' => 'Du hast dein Passwort erfolgreich zurückgesetzt. Dein neues Passwort lautet: {password}',
'infoCreateSuccess' => 'Dein Benutzerkonto wurde erfolgreich erstellt. Du kannst dich jetzt einloggen.', 'infoCreateSuccess' => 'Dein Benutzerkonto wurde erfolgreich erstellt. Du kannst dich jetzt einloggen.',
'infoCreateVerification' => 'Dein Benutzerkonto wurde erfolgreich erstellt. Eine E-Mail mit Informationen zur Bestätigung wurde versendet. ', 'infoCreateVerification' => 'Dein Benutzerkonto wurde erfolgreich erstellt. Eine E-Mail mit Informationen zur Bestätigung wurde an deine E-Mail-Adresse versendet. ',
'infoRemindSuccess' => 'Eine E-Mail mit Informationen zum zurückzusetzen wurde an deine E-Mail-Adresse versendet.',
'infoResetSuccess' => 'Eine E-Mail mit deinem neuem Passwort wurde an deine E-Mail-Adresse versendet.',
'noAccess' => 'Entschuldige, aber du hast kein Zugriffsrecht auf die angeforderte Seite.', 'noAccess' => 'Entschuldige, aber du hast kein Zugriffsrecht auf die angeforderte Seite.',
'notVerified' => 'Dein Account wurde bisher nicht bestätigt. Bitte prüfe deine E-Mails und bestätige deine Registrierung.', 'notVerified' => 'Dein Account wurde bisher nicht bestätigt. Bitte prüfe deine E-Mails und bestätige deine Registrierung.',

2
application/Language/en/Aauth.php

@ -35,6 +35,8 @@ return [
'infoCreateSuccess' => 'Your account has successfully been created. You can now login.', 'infoCreateSuccess' => 'Your account has successfully been created. You can now login.',
'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..', 'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..',
'infoRemindSuccess' => 'A email has been sent to your email address with reset instructions.',
'infoResetSuccess' => 'A email has been sent to your email address with your new password has been sent.',
'noAccess' => 'Sorry, you do not have access to the resource you requested.', 'noAccess' => 'Sorry, you do not have access to the resource you requested.',
'notVerified' => 'Your account has not been verified. Please check your email and verify your account.', 'notVerified' => 'Your account has not been verified. Please check your email and verify your account.',

57
application/Language/en/Account.php

@ -0,0 +1,57 @@
<?php
/**
* CodeIgniter-Aauth
*
* Aauth is a User Authorization Library for CodeIgniter 4.x, which aims to make
* easy some essential jobs such as login, permissions and access operations.
* Despite ease of use, it has also very advanced features like groupping,
* access management, public access etc..
*
* @package CodeIgniter-Aauth
* @author Magefly Team
* @copyright 2014-2017 Emre Akay
* @copyright 2018 Magefly
* @license https://opensource.org/licenses/MIT MIT License
* @link https://github.com/magefly/CodeIgniter-Aauth
*/
/**
* Account language strings.
*
* Language English
*
* @package CodeIgniter-Aauth
*
* @codeCoverageIgnore
*/
return [
'linkBackToLogin' => 'Back to Login',
'linkLogin' => 'Login',
'linkRegister' => 'Register new Account',
'linkRemindPassword' => 'Forgot Password?',
'loginHeader' => 'Login',
'loginLabelUsername' => 'Username',
'loginLabelEmail' => 'Email address',
'loginLabelPassword' => 'Password',
'loginLabelRemember' => 'Remember me',
'loginLabelSubmit' => 'Login',
'registerHeader' => 'Create new Account',
'registerLabelUsername' => 'Username',
'registerLabelEmail' => 'Email address',
'registerLabelPassword' => 'Password',
'registerLabelRemember' => 'Remember me',
'registerLabelSubmit' => 'Create Account',
'registerRequired' => 'Required',
'remindPasswordHeader' => 'Remind Password',
'remindPasswordText' => 'Forgot your password? <br />You can reset your password here.',
'remindPasswordLabelEmail' => 'Email address',
'remindPasswordLabelSubmit' => 'Send reset instructions',
'resetPasswordHeader' => 'Reset Password',
'resetPasswordText' => 'You are only one step away from your new password.',
'resetPasswordLabelVerificationCode' => 'Verification Code',
'resetPasswordLabelSubmit' => 'Send new password',
];

2
application/Language/es/Aauth.php

@ -35,6 +35,8 @@ return [
'infoCreateSuccess' => 'Your account has successfully been created. You can now login.', 'infoCreateSuccess' => 'Your account has successfully been created. You can now login.',
'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..', 'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..',
'infoRemindSuccess' => 'A email has been sent to your email address with reset instructions.',
'infoResetSuccess' => 'A email has been sent to your email address with your new password has been sent.',
'noAccess' => 'Ups, lo siento, no tienes permiso para ver el recurso solicitado.', 'noAccess' => 'Ups, lo siento, no tienes permiso para ver el recurso solicitado.',
'notVerified' => 'Tu cuenta aún no ha sido verificada, por favor revisa tu correo electrónico y verifica tu cuenta.', 'notVerified' => 'Tu cuenta aún no ha sido verificada, por favor revisa tu correo electrónico y verifica tu cuenta.',

70
application/Language/fa/Aauth.php

@ -25,47 +25,49 @@
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
return [ return [
'subjectVerification' => 'تایید حساب کاربری', 'subjectVerification' => 'تایید حساب کاربری',
'subjectReset' => 'بازنشانی کلمه عبور', 'subjectReset' => 'بازنشانی کلمه عبور',
'subjectResetSuccess' => 'کلمه عبور با موفقیت بازنشانی شد', 'subjectResetSuccess' => 'کلمه عبور با موفقیت بازنشانی شد',
'textVerification' => "کد تایید شما: {code}. شما همچنین میتوانید بر روی لینک زیر کلیک کنید و یا آن را در نوار آدرس مرورگر وارد کنید\n\n {link}", 'textVerification' => "کد تایید شما: {code}. شما همچنین میتوانید بر روی لینک زیر کلیک کنید و یا آن را در نوار آدرس مرورگر وارد کنید\n\n {link}",
'textReset' => "برای تغییر کلمه عبور خود بر روی لینک زیر کلیک کنید و یا آن را در نوار آدرس مرورگر وارد کنید\n\n {link}", 'textReset' => "برای تغییر کلمه عبور خود بر روی لینک زیر کلیک کنید و یا آن را در نوار آدرس مرورگر وارد کنید\n\n {link}",
'textResetSuccess' => 'کلمه عبور شما با موفقیت تغییر کرد. کلمه عبور جدید شما: {password}', 'textResetSuccess' => 'کلمه عبور شما با موفقیت تغییر کرد. کلمه عبور جدید شما: {password}',
'infoCreateSuccess' => 'Your account has successfully been created. You can now login.', 'infoCreateSuccess' => 'Your account has successfully been created. You can now login.',
'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..', 'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..',
'infoRemindSuccess' => 'A email has been sent to your email address with reset instructions.',
'infoResetSuccess' => 'A email has been sent to your email address with your new password has been sent.',
'noAccess' => 'متاسفانه شما به منبع درخواست شده دسترسی ندارید.', 'noAccess' => 'متاسفانه شما به منبع درخواست شده دسترسی ندارید.',
'notVerified' => 'حساب کاربری شما تایید نشده است. لطفا ایمیل خود را برای تایید حسا کاربری بررسی کنید.', 'notVerified' => 'حساب کاربری شما تایید نشده است. لطفا ایمیل خود را برای تایید حسا کاربری بررسی کنید.',
'loginFailedEmail' => 'ایمیل و کلمه عبور همخوانی ندارند.', 'loginFailedEmail' => 'ایمیل و کلمه عبور همخوانی ندارند.',
'loginFailedName' => 'نام کاربری و کلمه عبور همخوانی ندارند.', 'loginFailedName' => 'نام کاربری و کلمه عبور همخوانی ندارند.',
'loginFailedAll' => 'ایمیل یا نام کاربری با کلمه عبور همخوانی ندارد.', 'loginFailedAll' => 'ایمیل یا نام کاربری با کلمه عبور همخوانی ندارد.',
'loginAttemptsExceeded' => 'شما بیش از حد مجاز برای ورود به سایت تلاش کردید. حساب کاربری شما موقتا غیر فعال شد.', 'loginAttemptsExceeded' => 'شما بیش از حد مجاز برای ورود به سایت تلاش کردید. حساب کاربری شما موقتا غیر فعال شد.',
'invalidUserBanned' => 'This user is banned, please contact the system administrator.', 'invalidUserBanned' => 'This user is banned, please contact the system administrator.',
'invalidEmail' => 'آدرس ایمیل نامعتبر است', 'invalidEmail' => 'آدرس ایمیل نامعتبر است',
'invalidPassword' => 'کلمه عبور نامعتبر است', 'invalidPassword' => 'کلمه عبور نامعتبر است',
'invalidUsername' => 'نام کاربری نامعتبر است', 'invalidUsername' => 'نام کاربری نامعتبر است',
'invalidTOTPCode' => 'کد احراز هویت نامعتبر است', 'invalidTOTPCode' => 'کد احراز هویت نامعتبر است',
'invalidRecaptcha' => 'کد کپتچا به درستی وارد نشده.', 'invalidRecaptcha' => 'کد کپتچا به درستی وارد نشده.',
'invalidVerficationCode' => 'Invalid Verification Code', 'invalidVerficationCode' => 'Invalid Verification Code',
'requiredUsername' => 'ورود نام کاربری الزامی است', 'requiredUsername' => 'ورود نام کاربری الزامی است',
'requiredTOTPCode' => 'ورود کد احراز هویت الزامی است', 'requiredTOTPCode' => 'ورود کد احراز هویت الزامی است',
'requiredGroupName' => 'Group name required', 'requiredGroupName' => 'Group name required',
'requiredPermName' => 'Perm name required', 'requiredPermName' => 'Perm name required',
'existsAlreadyEmail' => 'آدرس ایمیل در سیستم موجود است. در صورتی که کلمه عبور خود را فراموش کردید، میتوانید بر روی لینک زیر کلیک کنید.', 'existsAlreadyEmail' => 'آدرس ایمیل در سیستم موجود است. در صورتی که کلمه عبور خود را فراموش کردید، میتوانید بر روی لینک زیر کلیک کنید.',
'existsAlreadyUsername' => 'نام کاربری وارد شده در سیستم موجود هست. لطفا یک نام کاربری دیگر انتخاب کنید، و یا اگر کلمه عبور خود را فراموش کرده اید بر روی لینک زیر کلیک کنید.', 'existsAlreadyUsername' => 'نام کاربری وارد شده در سیستم موجود هست. لطفا یک نام کاربری دیگر انتخاب کنید، و یا اگر کلمه عبور خود را فراموش کرده اید بر روی لینک زیر کلیک کنید.',
'existsAlreadyGroup' => 'نام گروه از قبل موجود است', 'existsAlreadyGroup' => 'نام گروه از قبل موجود است',
'existsAlreadyPerm' => 'سطح دسترسی از قبل موجود است', 'existsAlreadyPerm' => 'سطح دسترسی از قبل موجود است',
'notFoundUser' => 'نام کاربری وجود ندارد', 'notFoundUser' => 'نام کاربری وجود ندارد',
'notFoundGroup' => 'گروه موجود نیست', 'notFoundGroup' => 'گروه موجود نیست',
'notFoundSubgroup' => 'زیرگروه موجود نیست', 'notFoundSubgroup' => 'زیرگروه موجود نیست',
'alreadyMemberGroup' => 'کاربر از قبل عضو این گروه می باشد', 'alreadyMemberGroup' => 'کاربر از قبل عضو این گروه می باشد',
'alreadyMemberSubgroup' => 'زیرگروه از قبل شامل این گروه می باشد', 'alreadyMemberSubgroup' => 'زیرگروه از قبل شامل این گروه می باشد',
]; ];

70
application/Language/fr/Aauth.php

@ -25,47 +25,49 @@
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
return [ return [
'subjectVerification' => 'Vérification de Compte', 'subjectVerification' => 'Vérification de Compte',
'subjectReset' => 'Réinitialiser le mot de passe', 'subjectReset' => 'Réinitialiser le mot de passe',
'subjectResetSuccess' => 'Réinitialisation de mot de passe réussie', 'subjectResetSuccess' => 'Réinitialisation de mot de passe réussie',
'textVerification' => "VPour réinitialiser votre mot de passe cliquez sur (ou copiez collez dans la barre d'adresse de votre navigateur) le lien ci-dessous:\n\n {link}", 'textVerification' => "VPour réinitialiser votre mot de passe cliquez sur (ou copiez collez dans la barre d'adresse de votre navigateur) le lien ci-dessous:\n\n {link}",
'textReset' => "To reset your password click on (or copy and paste in your browser address bar) the link below:\n\n {link}", 'textReset' => "To reset your password click on (or copy and paste in your browser address bar) the link below:\n\n {link}",
'textResetSuccess' => 'Votre mot de passe a été réinitialisé avec succès. Votre nouveau mot de passe est: {password}', 'textResetSuccess' => 'Votre mot de passe a été réinitialisé avec succès. Votre nouveau mot de passe est: {password}',
'infoCreateSuccess' => 'Your account has successfully been created. You can now login.', 'infoCreateSuccess' => 'Your account has successfully been created. You can now login.',
'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..', 'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..',
'infoRemindSuccess' => 'A email has been sent to your email address with reset instructions.',
'infoResetSuccess' => 'A email has been sent to your email address with your new password has been sent.',
'noAccess' => 'Désolé, vous n\'avez pas accès à cette ressource.', 'noAccess' => 'Désolé, vous n\'avez pas accès à cette ressource.',
'notVerified' => 'Votre compte n\'a pas été confirmé. Merci de vérifier vos email et de confirmer votre compte.', 'notVerified' => 'Votre compte n\'a pas été confirmé. Merci de vérifier vos email et de confirmer votre compte.',
'loginFailedEmail' => 'L\'adresse email et le mot de passe ne correspondent pas.', 'loginFailedEmail' => 'L\'adresse email et le mot de passe ne correspondent pas.',
'loginFailedName' => 'Le nom d\'utilisateur et le mot de passe ne correspondent pas.', 'loginFailedName' => 'Le nom d\'utilisateur et le mot de passe ne correspondent pas.',
'loginFailedAll' => 'L\'adresse email, le nom d\'utilisateur ou le mot de passe ne correspondent pas.', 'loginFailedAll' => 'L\'adresse email, le nom d\'utilisateur ou le mot de passe ne correspondent pas.',
'loginAttemptsExceeded' => 'Vous avez dépassé le nombre de tentatives de connexion autorisées, votre compte a été bloqué.', 'loginAttemptsExceeded' => 'Vous avez dépassé le nombre de tentatives de connexion autorisées, votre compte a été bloqué.',
'invalidUserBanned' => 'This user is banned, please contact the system administrator.', 'invalidUserBanned' => 'This user is banned, please contact the system administrator.',
'invalidEmail' => 'Adresse email invalide', 'invalidEmail' => 'Adresse email invalide',
'invalidPassword' => 'Mot de passe invalide', 'invalidPassword' => 'Mot de passe invalide',
'invalidUsername' => 'Nom d\'utilisateur invalide', 'invalidUsername' => 'Nom d\'utilisateur invalide',
'invalidTOTPCode' => 'Code TOTP invalide', 'invalidTOTPCode' => 'Code TOTP invalide',
'invalidRecaptcha' => 'Désolé, le texte renseigné pour le reCAPTCHA est incorrect.', 'invalidRecaptcha' => 'Désolé, le texte renseigné pour le reCAPTCHA est incorrect.',
'invalidVerficationCode' => 'Invalid Verification Code', 'invalidVerficationCode' => 'Invalid Verification Code',
'requiredUsername' => 'Nom d\'utilisateur requis', 'requiredUsername' => 'Nom d\'utilisateur requis',
'requiredTOTPCode' => 'Code TOTP requis', 'requiredTOTPCode' => 'Code TOTP requis',
'requiredGroupName' => 'Group name required', 'requiredGroupName' => 'Group name required',
'requiredPermName' => 'Perm name required', 'requiredPermName' => 'Perm name required',
'existsAlreadyEmail' => 'Cette adresse email est déjà utilisée. Si vous avez oublié votre mot de passe cliquez sur le lien ci-dessous.', 'existsAlreadyEmail' => 'Cette adresse email est déjà utilisée. Si vous avez oublié votre mot de passe cliquez sur le lien ci-dessous.',
'existsAlreadyUsername' => 'Un compte avec ce nom d\'utilisateur existe déjà. Merci de renseigner un nom d\'utilisateur différent. Si vous avez oublié votre mot de passe cliquez sur le lien ci-dessous.', 'existsAlreadyUsername' => 'Un compte avec ce nom d\'utilisateur existe déjà. Merci de renseigner un nom d\'utilisateur différent. Si vous avez oublié votre mot de passe cliquez sur le lien ci-dessous.',
'existsAlreadyGroup' => 'Ce nom de groupe existe déjà', 'existsAlreadyGroup' => 'Ce nom de groupe existe déjà',
'existsAlreadyPerm' => 'Ce nom de permission existe déjà', 'existsAlreadyPerm' => 'Ce nom de permission existe déjà',
'notFoundUser' => 'L\'utilisateur n\'existe pas', 'notFoundUser' => 'L\'utilisateur n\'existe pas',
'notFoundGroup' => 'Le groupe n\'existe pas', 'notFoundGroup' => 'Le groupe n\'existe pas',
'notFoundSubgroup' => 'Le groupe n\'existe pas', 'notFoundSubgroup' => 'Le groupe n\'existe pas',
'alreadyMemberGroup' => 'L\'utilisateur est déjà membre de ce groupe', 'alreadyMemberGroup' => 'L\'utilisateur est déjà membre de ce groupe',
'alreadyMemberSubgroup' => 'Subgroup is already member of group', 'alreadyMemberSubgroup' => 'Subgroup is already member of group',
]; ];

70
application/Language/id/Aauth.php

@ -25,47 +25,49 @@
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
return [ return [
'subjectVerification' => 'Verifikasi Akun', 'subjectVerification' => 'Verifikasi Akun',
'subjectReset' => 'Ganti Kata Sandi', 'subjectReset' => 'Ganti Kata Sandi',
'subjectResetSuccess' => 'Berhasil mengubah kata sandi', 'subjectResetSuccess' => 'Berhasil mengubah kata sandi',
'textVerification' => "Kode verifikasi anda adalah: {code}. Anda juga bisa klik (atau salin dan tempel) tautan berikut ini\n\n {link}", 'textVerification' => "Kode verifikasi anda adalah: {code}. Anda juga bisa klik (atau salin dan tempel) tautan berikut ini\n\n {link}",
'textReset' => "Untuk mengganti kata sandi klik (atau salin dan tempel) tautan dibawah ini:\n\n {link}", 'textReset' => "Untuk mengganti kata sandi klik (atau salin dan tempel) tautan dibawah ini:\n\n {link}",
'textResetSuccess' => 'Kata sandi anda berhasil diubah. Kata sandi baru anda adalah: {password}', 'textResetSuccess' => 'Kata sandi anda berhasil diubah. Kata sandi baru anda adalah: {password}',
'infoCreateSuccess' => 'Your account has successfully been created. You can now login.', 'infoCreateSuccess' => 'Your account has successfully been created. You can now login.',
'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..', 'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..',
'infoRemindSuccess' => 'A email has been sent to your email address with reset instructions.',
'infoResetSuccess' => 'A email has been sent to your email address with your new password has been sent.',
'noAccess' => 'Maaf, Anda tidak memiliki akses ke sumber daya yang Anda minta.', 'noAccess' => 'Maaf, Anda tidak memiliki akses ke sumber daya yang Anda minta.',
'notVerified' => 'Akun anda belum diverifikasi. Silakan cek email anda dan verifikasi akun anda.', 'notVerified' => 'Akun anda belum diverifikasi. Silakan cek email anda dan verifikasi akun anda.',
'loginFailedEmail' => 'Email dan sandi yang anda masukkan tidak cocok.', 'loginFailedEmail' => 'Email dan sandi yang anda masukkan tidak cocok.',
'loginFailedName' => 'Username dan sandi yang Anda masukkan tidak cocok.', 'loginFailedName' => 'Username dan sandi yang Anda masukkan tidak cocok.',
'loginFailedAll' => 'Email, username dan sandi yang Anda masukkan tidak cocok.', 'loginFailedAll' => 'Email, username dan sandi yang Anda masukkan tidak cocok.',
'loginAttemptsExceeded' => 'Anda telah melebihi upaya login anda, akun anda telah diblokir.', 'loginAttemptsExceeded' => 'Anda telah melebihi upaya login anda, akun anda telah diblokir.',
'invalidUserBanned' => 'This user is banned, please contact the system administrator.', 'invalidUserBanned' => 'This user is banned, please contact the system administrator.',
'invalidEmail' => 'Alamat email tidak valid', 'invalidEmail' => 'Alamat email tidak valid',
'invalidPassword' => 'kata sandi tidak valid', 'invalidPassword' => 'kata sandi tidak valid',
'invalidUsername' => 'Username tidak valid', 'invalidUsername' => 'Username tidak valid',
'invalidTOTPCode' => 'Kode autentikasi tidak valid', 'invalidTOTPCode' => 'Kode autentikasi tidak valid',
'invalidRecaptcha' => 'Maaf, teks reCAPTCHA yang anda dimasukkan salah.', 'invalidRecaptcha' => 'Maaf, teks reCAPTCHA yang anda dimasukkan salah.',
'invalidVerficationCode' => 'Invalid Verification Code', 'invalidVerficationCode' => 'Invalid Verification Code',
'requiredUsername' => 'Username tidak boleh kosong', 'requiredUsername' => 'Username tidak boleh kosong',
'requiredTOTPCode' => 'Kode autentikasi tidak boleh kosong', 'requiredTOTPCode' => 'Kode autentikasi tidak boleh kosong',
'requiredGroupName' => 'Group name required', 'requiredGroupName' => 'Group name required',
'requiredPermName' => 'Perm name required', 'requiredPermName' => 'Perm name required',
'existsAlreadyEmail' => 'Email sudah digunakan di sistem. Jika anda lupa kata sandi, silahkan klik tautan dibawah ini.', 'existsAlreadyEmail' => 'Email sudah digunakan di sistem. Jika anda lupa kata sandi, silahkan klik tautan dibawah ini.',
'existsAlreadyUsername' => 'Username telah digunakan oleh akun lain pada sistem. Silahkan masukan username lain, atau jika anda lupa kata sandi, silahkan klik tautan dibawah ini.', 'existsAlreadyUsername' => 'Username telah digunakan oleh akun lain pada sistem. Silahkan masukan username lain, atau jika anda lupa kata sandi, silahkan klik tautan dibawah ini.',
'existsAlreadyGroup' => 'Nama grup sudah ada', 'existsAlreadyGroup' => 'Nama grup sudah ada',
'existsAlreadyPerm' => 'Nama izin sudah ada', 'existsAlreadyPerm' => 'Nama izin sudah ada',
'notFoundUser' => 'Pengguna tidak ada', 'notFoundUser' => 'Pengguna tidak ada',
'notFoundGroup' => 'Grup tidak ada', 'notFoundGroup' => 'Grup tidak ada',
'notFoundSubgroup' => 'Sub-grup tidak ada', 'notFoundSubgroup' => 'Sub-grup tidak ada',
'alreadyMemberGroup' => 'Pengguna sudah menjadi anggota grup', 'alreadyMemberGroup' => 'Pengguna sudah menjadi anggota grup',
'alreadyMemberSubgroup' => 'Sub-grup sudah menjadi anggota grup', 'alreadyMemberSubgroup' => 'Sub-grup sudah menjadi anggota grup',
]; ];

70
application/Language/ru/Aauth.php

@ -25,47 +25,49 @@
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
return [ return [
'subjectVerification' => 'Подтверждение аккаунта', 'subjectVerification' => 'Подтверждение аккаунта',
'subjectReset' => 'Сброс пароля', 'subjectReset' => 'Сброс пароля',
'subjectResetSuccess' => 'Сброс пароля выполнен', 'subjectResetSuccess' => 'Сброс пароля выполнен',
'textVerification' => "Ваш код подтверждения: {code}. Так же вы можете нажать (или скопировать/вставить в адресную строку браузера) следующую ссылку\n\n {link}", 'textVerification' => "Ваш код подтверждения: {code}. Так же вы можете нажать (или скопировать/вставить в адресную строку браузера) следующую ссылку\n\n {link}",
'textReset' => "Для сброса пароля нажмите (или скопируйте/вставьте в адресную строку браузера) ссылку:\n\n {link}", 'textReset' => "Для сброса пароля нажмите (или скопируйте/вставьте в адресную строку браузера) ссылку:\n\n {link}",
'textResetSuccess' => 'Ваш пароль сброшен. Ваш новый пароль: {password}', 'textResetSuccess' => 'Ваш пароль сброшен. Ваш новый пароль: {password}',
'infoCreateSuccess' => 'Your account has successfully been created. You can now login.', 'infoCreateSuccess' => 'Your account has successfully been created. You can now login.',
'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..', 'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..',
'infoRemindSuccess' => 'A email has been sent to your email address with reset instructions.',
'infoResetSuccess' => 'A email has been sent to your email address with your new password has been sent.',
'noAccess' => 'Извините, у вас нет доступа к запрашиваемому ресурсу.', 'noAccess' => 'Извините, у вас нет доступа к запрашиваемому ресурсу.',
'notVerified' => 'Ваш акккаунт не подтвержден. Проверьте ваш ящик e-mail и подтвердите аккаунт.', 'notVerified' => 'Ваш акккаунт не подтвержден. Проверьте ваш ящик e-mail и подтвердите аккаунт.',
'loginFailedEmail' => 'Неверный email или пароль.', 'loginFailedEmail' => 'Неверный email или пароль.',
'loginFailedName' => 'Неверное имя пользователя или пароль.', 'loginFailedName' => 'Неверное имя пользователя или пароль.',
'loginFailedAll' => 'Неверный E-mail, имя пользователя или пароль.', 'loginFailedAll' => 'Неверный E-mail, имя пользователя или пароль.',
'loginAttemptsExceeded' => 'Количество попыток входа превышено, ваш аккаунт временно заблокирован.', 'loginAttemptsExceeded' => 'Количество попыток входа превышено, ваш аккаунт временно заблокирован.',
'invalidUserBanned' => 'This user is banned, please contact the system administrator.', 'invalidUserBanned' => 'This user is banned, please contact the system administrator.',
'invalidEmail' => 'Некорректный адрес e-mail', 'invalidEmail' => 'Некорректный адрес e-mail',
'invalidPassword' => 'Некорректный пароль', 'invalidPassword' => 'Некорректный пароль',
'invalidUsername' => 'Некорректное имя пользователя', 'invalidUsername' => 'Некорректное имя пользователя',
'invalidTOTPCode' => 'Неверный код аутентификации', 'invalidTOTPCode' => 'Неверный код аутентификации',
'invalidRecaptcha' => 'Извините, текст с reCAPTCHA введен неверно.', 'invalidRecaptcha' => 'Извините, текст с reCAPTCHA введен неверно.',
'invalidVerficationCode' => 'Invalid Verification Code', 'invalidVerficationCode' => 'Invalid Verification Code',
'requiredUsername' => 'Логин обязателен', 'requiredUsername' => 'Логин обязателен',
'requiredTOTPCode' => 'Требуется код аутентификации', 'requiredTOTPCode' => 'Требуется код аутентификации',
'requiredGroupName' => 'Group name required', 'requiredGroupName' => 'Group name required',
'requiredPermName' => 'Perm name required', 'requiredPermName' => 'Perm name required',
'existsAlreadyEmail' => 'Email уже зарегистрирован в системе. Если вы забыли ваш пароль, нажмите на ссылку ниже.', 'existsAlreadyEmail' => 'Email уже зарегистрирован в системе. Если вы забыли ваш пароль, нажмите на ссылку ниже.',
'existsAlreadyUsername' => 'Аккаунт с этим именен пользователя уже есть в системе. Введите другое имя пользователя, или если вы забыли ваш пароль, нажмите на ссылку ниже.', 'existsAlreadyUsername' => 'Аккаунт с этим именен пользователя уже есть в системе. Введите другое имя пользователя, или если вы забыли ваш пароль, нажмите на ссылку ниже.',
'existsAlreadyGroup' => 'Такое имя группы уже есть', 'existsAlreadyGroup' => 'Такое имя группы уже есть',
'existsAlreadyPerm' => 'Такое имя разрешений уже есть', 'existsAlreadyPerm' => 'Такое имя разрешений уже есть',
'notFoundUser' => 'Пользователь не существует', 'notFoundUser' => 'Пользователь не существует',
'notFoundGroup' => 'Группа не существует', 'notFoundGroup' => 'Группа не существует',
'notFoundSubgroup' => 'Подгруппа не существует', 'notFoundSubgroup' => 'Подгруппа не существует',
'alreadyMemberGroup' => 'Пользователь уже состоит в группе', 'alreadyMemberGroup' => 'Пользователь уже состоит в группе',
'alreadyMemberSubgroup' => 'Подгруппа состоит в группе', 'alreadyMemberSubgroup' => 'Подгруппа состоит в группе',
]; ];

70
application/Language/sv/Aauth.php

@ -25,47 +25,49 @@
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
return [ return [
'subjectVerification' => 'Bekräfta konto', 'subjectVerification' => 'Bekräfta konto',
'subjectReset' => 'Återställ lösenord', 'subjectReset' => 'Återställ lösenord',
'subjectResetSuccess' => 'Lösenordsåterställning skickad', 'subjectResetSuccess' => 'Lösenordsåterställning skickad',
'textVerification' => "Din bekräftelsekod är: {code}. Du kan även trycka på (eller kopiera och klistra in) följande länk\n\n {link}", 'textVerification' => "Din bekräftelsekod är: {code}. Du kan även trycka på (eller kopiera och klistra in) följande länk\n\n {link}",
'textReset' => "För att återställa ditt lösenord, tryck på (eller kopiera och klistra in i din webbläsares adressfält) länken nedan:\n\n {link}", 'textReset' => "För att återställa ditt lösenord, tryck på (eller kopiera och klistra in i din webbläsares adressfält) länken nedan:\n\n {link}",
'textResetSuccess' => 'Ditt lösenord har blivit återställt. Ditt nya lösenord är: {password}', 'textResetSuccess' => 'Ditt lösenord har blivit återställt. Ditt nya lösenord är: {password}',
'infoCreateSuccess' => 'Your account has successfully been created. You can now login.', 'infoCreateSuccess' => 'Your account has successfully been created. You can now login.',
'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..', 'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..',
'infoRemindSuccess' => 'A email has been sent to your email address with reset instructions.',
'infoResetSuccess' => 'A email has been sent to your email address with your new password has been sent.',
'noAccess' => 'Du har tyvärr inte rättighet att visa den här resursen.', 'noAccess' => 'Du har tyvärr inte rättighet att visa den här resursen.',
'notVerified' => 'Ditt konto är inte bekräftat. Var vänlig kolla din e-post och bekräfta ditt konto.', 'notVerified' => 'Ditt konto är inte bekräftat. Var vänlig kolla din e-post och bekräfta ditt konto.',
'loginFailedEmail' => 'E-postadressen och lösenordet stämmer inte överens.', 'loginFailedEmail' => 'E-postadressen och lösenordet stämmer inte överens.',
'loginFailedName' => 'Användarnamnet och lösenordet stämmer inte överens.', 'loginFailedName' => 'Användarnamnet och lösenordet stämmer inte överens.',
'loginFailedAll' => 'E-postadress, användarnamn och lösenord stämmer inte överens.', 'loginFailedAll' => 'E-postadress, användarnamn och lösenord stämmer inte överens.',
'loginAttemptsExceeded' => 'Du har förbrukat dina försök att logga in, ditt konto har blivit låst.', 'loginAttemptsExceeded' => 'Du har förbrukat dina försök att logga in, ditt konto har blivit låst.',
'invalidUserBanned' => 'This user is banned, please contact the system administrator.', 'invalidUserBanned' => 'This user is banned, please contact the system administrator.',
'invalidEmail' => 'Ogiltig e-postadress', 'invalidEmail' => 'Ogiltig e-postadress',
'invalidPassword' => 'Ogiltigt lösenord', 'invalidPassword' => 'Ogiltigt lösenord',
'invalidUsername' => 'Ogiltigt användarnamn', 'invalidUsername' => 'Ogiltigt användarnamn',
'invalidTOTPCode' => 'Ogiltig bekräftelsekod', 'invalidTOTPCode' => 'Ogiltig bekräftelsekod',
'invalidRecaptcha' => 'Tyvärr, reCAPTCHA-texten var felaktig.', 'invalidRecaptcha' => 'Tyvärr, reCAPTCHA-texten var felaktig.',
'invalidVerficationCode' => 'Invalid Verification Code', 'invalidVerficationCode' => 'Invalid Verification Code',
'requiredUsername' => 'Användarnamn obligatoriskt', 'requiredUsername' => 'Användarnamn obligatoriskt',
'requiredTOTPCode' => 'Bekräftelsekod behövs', 'requiredTOTPCode' => 'Bekräftelsekod behövs',
'requiredGroupName' => 'Group name required', 'requiredGroupName' => 'Group name required',
'requiredPermName' => 'Perm name required', 'requiredPermName' => 'Perm name required',
'existsAlreadyEmail' => 'E-postadressen finns redan i systemet. Om du glömt ditt lösenord kan du trycka på länken nedan.', 'existsAlreadyEmail' => 'E-postadressen finns redan i systemet. Om du glömt ditt lösenord kan du trycka på länken nedan.',
'existsAlreadyUsername' => 'Det finns redan ett konto i systemet med det användarnamnet. Var vänlig ange ett annat användarnamn. Om du lömt ditt lösenord var vänlig tryck på länken nedan.', 'existsAlreadyUsername' => 'Det finns redan ett konto i systemet med det användarnamnet. Var vänlig ange ett annat användarnamn. Om du lömt ditt lösenord var vänlig tryck på länken nedan.',
'existsAlreadyGroup' => 'Gruppnamnet finns redan.', 'existsAlreadyGroup' => 'Gruppnamnet finns redan.',
'existsAlreadyPerm' => 'Rättighetsnamnet finns redan.', 'existsAlreadyPerm' => 'Rättighetsnamnet finns redan.',
'notFoundUser' => 'Användaren finns inte', 'notFoundUser' => 'Användaren finns inte',
'notFoundGroup' => 'Gruppen finns inte', 'notFoundGroup' => 'Gruppen finns inte',
'notFoundSubgroup' => 'Undergruppen finns inte', 'notFoundSubgroup' => 'Undergruppen finns inte',
'alreadyMemberGroup' => 'Användaren är redan med i gruppen.', 'alreadyMemberGroup' => 'Användaren är redan med i gruppen.',
'alreadyMemberSubgroup' => 'Undergruppen är redan med i gruppen.', 'alreadyMemberSubgroup' => 'Undergruppen är redan med i gruppen.',
]; ];

70
application/Language/zh-CN/Aauth.php

@ -27,47 +27,49 @@
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
return [ return [
'subjectVerification' => '帐户验证', 'subjectVerification' => '帐户验证',
'subjectReset' => '重设密码', 'subjectReset' => '重设密码',
'subjectResetSuccess' => '密码重设成功', 'subjectResetSuccess' => '密码重设成功',
'textVerification' => "您的验证码:{code}. 您可以点击(或者复制贴上)以下链接\n\n {link}", 'textVerification' => "您的验证码:{code}. 您可以点击(或者复制贴上)以下链接\n\n {link}",
'textReset' => "欲重设你的密码请点击(或者复制贴上到浏览器网址列)下方链接:\n\n {link}", 'textReset' => "欲重设你的密码请点击(或者复制贴上到浏览器网址列)下方链接:\n\n {link}",
'textResetSuccess' => '您的密码已寄出成功。您的新密码是:{password}', 'textResetSuccess' => '您的密码已寄出成功。您的新密码是:{password}',
'infoCreateSuccess' => 'Your account has successfully been created. You can now login.', 'infoCreateSuccess' => 'Your account has successfully been created. You can now login.',
'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..', 'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..',
'infoRemindSuccess' => 'A email has been sent to your email address with reset instructions.',
'infoResetSuccess' => 'A email has been sent to your email address with your new password has been sent.',
'noAccess' => '对不起,您无法存取您需要的资源。', 'noAccess' => '对不起,您无法存取您需要的资源。',
'notVerified' => '您的帐户尚未验证,请检查信箱并验证帐户。', 'notVerified' => '您的帐户尚未验证,请检查信箱并验证帐户。',
'loginFailedEmail' => '电邮地址和密码不符', 'loginFailedEmail' => '电邮地址和密码不符',
'loginFailedName' => '用户名和密码不符', 'loginFailedName' => '用户名和密码不符',
'loginFailedAll' => '电邮地址、用户名和或密码不符', 'loginFailedAll' => '电邮地址、用户名和或密码不符',
'loginAttemptsExceeded' => '您已达到登入尝试限制数,您的帐户已被锁住。', 'loginAttemptsExceeded' => '您已达到登入尝试限制数,您的帐户已被锁住。',
'invalidUserBanned' => 'This user is banned, please contact the system administrator.', 'invalidUserBanned' => 'This user is banned, please contact the system administrator.',
'invalidEmail' => '无效的电子邮件地址', 'invalidEmail' => '无效的电子邮件地址',
'invalidPassword' => '无效的密码', 'invalidPassword' => '无效的密码',
'invalidUsername' => '无效的用户名', 'invalidUsername' => '无效的用户名',
'invalidTOTPCode' => '无效的证认码', 'invalidTOTPCode' => '无效的证认码',
'invalidRecaptcha' => '对不起,reCAPTCHA 验证码输入错误。', 'invalidRecaptcha' => '对不起,reCAPTCHA 验证码输入错误。',
'invalidVerficationCode' => 'Invalid Verification Code', 'invalidVerficationCode' => 'Invalid Verification Code',
'requiredUsername' => 'Username required', 'requiredUsername' => 'Username required',
'requiredTOTPCode' => '需要证认码', 'requiredTOTPCode' => '需要证认码',
'requiredGroupName' => 'Group name required', 'requiredGroupName' => 'Group name required',
'requiredPermName' => 'Perm name required', 'requiredPermName' => 'Perm name required',
'existsAlreadyEmail' => '电邮地址已存在系统中。如果您忘了密码,可以按下方链接。', 'existsAlreadyEmail' => '电邮地址已存在系统中。如果您忘了密码,可以按下方链接。',
'existsAlreadyUsername' => '此用户名的帐户已存在系统中,请输入不同的用户名。如果是忘了密码,请按下方链接。', 'existsAlreadyUsername' => '此用户名的帐户已存在系统中,请输入不同的用户名。如果是忘了密码,请按下方链接。',
'existsAlreadyGroup' => '群组名称已存在', 'existsAlreadyGroup' => '群组名称已存在',
'existsAlreadyPerm' => '权限名称已存在', 'existsAlreadyPerm' => '权限名称已存在',
'notFoundUser' => '用户不存在', 'notFoundUser' => '用户不存在',
'notFoundGroup' => '群组不存在', 'notFoundGroup' => '群组不存在',
'notFoundSubgroup' => '子群组不存在', 'notFoundSubgroup' => '子群组不存在',
'alreadyMemberGroup' => '用户已是群组成员', 'alreadyMemberGroup' => '用户已是群组成员',
'alreadyMemberSubgroup' => '子群组已是群组成员', 'alreadyMemberSubgroup' => '子群组已是群组成员',
]; ];

70
application/Language/zh-TW/Aauth.php

@ -27,47 +27,49 @@
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
return [ return [
'subjectVerification' => '帳號驗證', 'subjectVerification' => '帳號驗證',
'subjectReset' => '重設密碼', 'subjectReset' => '重設密碼',
'subjectResetSuccess' => '密碼重設成功', 'subjectResetSuccess' => '密碼重設成功',
'textVerification' => "您的驗證碼:{code}. 您可以點擊(或者複製貼上)以下連結\n\n {link}", 'textVerification' => "您的驗證碼:{code}. 您可以點擊(或者複製貼上)以下連結\n\n {link}",
'textReset' => "欲重設你的密碼請點擊(或者複製貼上到瀏覽器網址列)下方連結:\n\n {link}", 'textReset' => "欲重設你的密碼請點擊(或者複製貼上到瀏覽器網址列)下方連結:\n\n {link}",
'textResetSuccess' => '您的密碼已寄出成功。您的新密碼是:{password}', 'textResetSuccess' => '您的密碼已寄出成功。您的新密碼是:{password}',
'infoCreateSuccess' => 'Your account has successfully been created. You can now login.', 'infoCreateSuccess' => 'Your account has successfully been created. You can now login.',
'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..', 'infoCreateVerification' => 'Your account has successfully been created. A email has been sent to your email address with verification details..',
'infoRemindSuccess' => 'A email has been sent to your email address with reset instructions.',
'infoResetSuccess' => 'A email has been sent to your email address with your new password has been sent.',
'noAccess' => '對不起,您無法存取您需要的資源。', 'noAccess' => '對不起,您無法存取您需要的資源。',
'notVerified' => '您的帳號尚未驗證,請檢查信箱並驗證帳號。', 'notVerified' => '您的帳號尚未驗證,請檢查信箱並驗證帳號。',
'loginFailedEmail' => '電郵地址和密碼不符', 'loginFailedEmail' => '電郵地址和密碼不符',
'loginFailedName' => '用戶名和密碼不符', 'loginFailedName' => '用戶名和密碼不符',
'loginFailedAll' => '電郵地址、用戶名和或密碼不符', 'loginFailedAll' => '電郵地址、用戶名和或密碼不符',
'loginAttemptsExceeded' => '您已達到登入嘗試限制數,您的帳號已被鎖住。', 'loginAttemptsExceeded' => '您已達到登入嘗試限制數,您的帳號已被鎖住。',
'invalidUserBanned' => 'This user is banned, please contact the system administrator.', 'invalidUserBanned' => 'This user is banned, please contact the system administrator.',
'invalidEmail' => '無效的電子郵件地址', 'invalidEmail' => '無效的電子郵件地址',
'invalidPassword' => '無效的密碼', 'invalidPassword' => '無效的密碼',
'invalidUsername' => '無效的用戶名', 'invalidUsername' => '無效的用戶名',
'invalidTOTPCode' => '無效的證認碼', 'invalidTOTPCode' => '無效的證認碼',
'invalidRecaptcha' => '對不起,reCAPTCHA 驗證碼輸入錯誤。', 'invalidRecaptcha' => '對不起,reCAPTCHA 驗證碼輸入錯誤。',
'invalidVerficationCode' => 'Invalid Verification Code', 'invalidVerficationCode' => 'Invalid Verification Code',
'requiredUsername' => '需要用戶名', 'requiredUsername' => '需要用戶名',
'requiredTOTPCode' => '需要證認碼', 'requiredTOTPCode' => '需要證認碼',
'requiredGroupName' => 'Group name required', 'requiredGroupName' => 'Group name required',
'requiredPermName' => 'Perm name required', 'requiredPermName' => 'Perm name required',
'existsAlreadyEmail' => '電郵地址已存在系統中。如果您忘了密碼,可以按下方連結。', 'existsAlreadyEmail' => '電郵地址已存在系統中。如果您忘了密碼,可以按下方連結。',
'existsAlreadyUsername' => '此用戶名的帳號已存在系統中,請輸入不同的用戶名。如果是忘了密碼,請按下方連結。', 'existsAlreadyUsername' => '此用戶名的帳號已存在系統中,請輸入不同的用戶名。如果是忘了密碼,請按下方連結。',
'existsAlreadyGroup' => '群組名稱已存在', 'existsAlreadyGroup' => '群組名稱已存在',
'existsAlreadyPerm' => '權限名稱已存在', 'existsAlreadyPerm' => '權限名稱已存在',
'notFoundUser' => '用戶不存在', 'notFoundUser' => '用戶不存在',
'notFoundGroup' => '群組不存在', 'notFoundGroup' => '群組不存在',
'notFoundSubgroup' => '子群組不存在', 'notFoundSubgroup' => '子群組不存在',
'alreadyMemberGroup' => '用戶已是群組成員', 'alreadyMemberGroup' => '用戶已是群組成員',
'alreadyMemberSubgroup' => '子群組已是群組成員', 'alreadyMemberSubgroup' => '子群組已是群組成員',
]; ];

43
application/Libraries/Aauth.php

@ -273,7 +273,7 @@ class Aauth
$userVariableModel->save($userId, 'verification_code', $verificationCode, true); $userVariableModel->save($userId, 'verification_code', $verificationCode, true);
$messageData['code'] = $verificationCode; $messageData['code'] = $verificationCode;
$messageData['link'] = site_url($this->config->linkVerification . '/' . $userId . '/' . $verificationCode); $messageData['link'] = site_url($this->config->linkVerification . '/' . $verificationCode);
$emailService->initialize(isset($this->config->emailConfig) ? $this->config->emailConfig : []); $emailService->initialize(isset($this->config->emailConfig) ? $this->config->emailConfig : []);
$emailService->setFrom($this->config->emailFrom, $this->config->emailFromName); $emailService->setFrom($this->config->emailFrom, $this->config->emailFromName);
@ -455,21 +455,33 @@ class Aauth
$userVariableModel = new UserVariableModel(); $userVariableModel = new UserVariableModel();
$emailService = \Config\Services::email(); $emailService = \Config\Services::email();
$resetCode = sha1(strtotime('now')); $resetCode = sha1(strtotime('now'));
$userVariableModel->save($user['id'], 'verification_code', $resetCode, true);
$userVariableModel->save($user->id, 'verification_code', $resetCode, true);
$messageData['code'] = $resetCode; $messageData['code'] = $resetCode;
$messageData['link'] = site_url($this->config->linkResetPassword . '/' . $user->id . '/' . $resetCode); $messageData['link'] = site_url($this->config->linkResetPassword . '/' . $resetCode);
$emailService->initialize(isset($this->config->emailConfig) ? $this->config->emailConfig : []); $emailService->initialize(isset($this->config->emailConfig) ? $this->config->emailConfig : []);
$emailService->setFrom($this->config->emailFrom, $this->config->emailFromName); $emailService->setFrom($this->config->emailFrom, $this->config->emailFromName);
$emailService->setTo($user->email); $emailService->setTo($user['email']);
$emailService->setSubject(lang('Aauth.subjectReset')); $emailService->setSubject(lang('Aauth.subjectReset'));
$emailService->setMessage(view('Aauth/Reset', $messageData)); $emailService->setMessage(view('Aauth/RemindPassword', $messageData));
if ($email = $emailService->send())
{
$this->info(lang('Aauth.infoRemindSuccess'));
return $email;
}
else
{
$this->error(explode('<br />', $emailService->printDebugger([])));
return $emailService->send(); return false;
}
} }
$this->error(lang('Aauth.notFoundUser'));
return false; return false;
} }
/** /**
@ -517,9 +529,20 @@ class Aauth
$emailService->setFrom($this->config->emailFrom, $this->config->emailFromName); $emailService->setFrom($this->config->emailFrom, $this->config->emailFromName);
$emailService->setTo($user['email']); $emailService->setTo($user['email']);
$emailService->setSubject(lang('Aauth.subjectResetSuccess')); $emailService->setSubject(lang('Aauth.subjectResetSuccess'));
$emailService->setMessage(view('Aauth/ResetSuccess', $messageData)); $emailService->setMessage(view('Aauth/ResetPassword', $messageData));
return true; if ($email = $emailService->send())
{
$this->info(lang('Aauth.infoResetSuccess'));
return $email;
}
else
{
$this->error(explode('<br />', $emailService->printDebugger([])));
return false;
}
} }
} }
@ -697,8 +720,8 @@ class Aauth
$tokenData['selector_hash'] = password_hash($selectorString, PASSWORD_DEFAULT); $tokenData['selector_hash'] = password_hash($selectorString, PASSWORD_DEFAULT);
$tokenData['expires_at'] = date('Y-m-d H:i:s', strtotime($expire)); $tokenData['expires_at'] = date('Y-m-d H:i:s', strtotime($expire));
$loginTokenModel->insert($tokenData);
set_cookie($cookieData); set_cookie($cookieData);
$loginTokenModel->insert($tokenData);
} }
$userModel->updateLastLogin($user['id']); $userModel->updateLastLogin($user['id']);

1
application/Models/Aauth/LoginTokenModel.php

@ -19,6 +19,7 @@ namespace App\Models\Aauth;
use Config\Aauth as AauthConfig; use Config\Aauth as AauthConfig;
use Config\Database; use Config\Database;
use Config\Services;
use CodeIgniter\Database\BaseBuilder; use CodeIgniter\Database\BaseBuilder;
use CodeIgniter\Database\BaseConnection; use CodeIgniter\Database\BaseConnection;
use CodeIgniter\Database\ConnectionInterface; use CodeIgniter\Database\ConnectionInterface;

0
application/Views/Aauth/Reset.php → application/Views/Aauth/RemindPassword.php

0
application/Views/Aauth/ResetSuccess.php → application/Views/Aauth/ResetPassword.php

40
application/Views/Account/Login.php

@ -1,6 +1,6 @@
<div class="container"> <div class="container">
<div class="card card-login mx-auto mt-5"> <div class="card card-login mx-auto mt-5">
<div class="card-header"><?=lang('Account.loginText')?></div> <div class="card-header"><?=lang('Account.loginHeader')?></div>
<div class="card-body"> <div class="card-body">
<form method="POST"> <form method="POST">
<?if (isset($errors)):?> <?if (isset($errors)):?>
@ -8,35 +8,41 @@
<?endif;?> <?endif;?>
<div class="form-group"> <div class="form-group">
<div class="form-label-group"> <div class="form-label-group">
<?if ($useUsername):?> <?if ($useUsername):?>
<input type="text" name="username" id="inputUsername" class="form-control" placeholder="<?=lang('Account.loginLabelUsername')?>" required autofocus> <input type="text" name="username" id="inputUsername" class="form-control" placeholder="<?=lang('Account.loginLabelUsername')?>" required autofocus>
<label for="inputUsername"><?=lang('Account.loginLabelUsername')?></label> <label for="inputUsername"><?=lang('Account.loginLabelUsername')?></label>
<?else:?> <?else:?>
<input type="email" name="email" id="inputEmail" class="form-control" placeholder="<?=lang('Account.loginLabelEmail')?>" required autofocus> <input type="email" name="email" id="inputEmail" class="form-control" placeholder="<?=lang('Account.loginLabelEmail')?>" required autofocus>
<label for="inputEmail"><?=lang('Account.loginLabelEmail')?></label> <label for="inputEmail"><?=lang('Account.loginLabelEmail')?></label>
<?endif;?> <?endif;?>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="form-label-group"> <div class="form-label-group">
<input type="password" name="password" id="inputPassword" class="form-control" placeholder="<?=lang('Account.loginLabelPassword')?>" required> <input type="password" name="password" id="inputPassword" class="form-control" placeholder="<?=lang('Account.loginLabelPassword')?>" required>
<label for="inputPassword"><?=lang('Account.loginLabelPassword')?></label> <label for="inputPassword"><?=lang('Account.loginLabelPassword')?></label>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="checkbox"> <div class="checkbox">
<label> <label>
<input type="checkbox" name="remember" value="true"> <input type="checkbox" name="remember" value="true">
<?=lang('Account.loginLabelRemember')?> <?=lang('Account.loginLabelRemember')?>
</label> </label>
</div> </div>
</div> </div>
<button class="btn btn-primary btn-block" type="submit"><?=lang('Account.loginLabelSubmit')?></button> <button class="btn btn-primary btn-block" type="submit"><?=lang('Account.loginLabelSubmit')?></button>
</form> </form>
<div class="text-center"> </div>
<a class="d-block small mt-3" href="<?=site_url('account/register')?>"><?=lang('Account.loginLinkRegister')?></a> <div class="card-footer">
<a class="d-block small" href="<?=site_url('account/forgot_password')?>"><?=lang('Account.loginLinkForgotPassword')?></a> <div class="row">
</div> <div class="col-6">
<a class="d-block small" href="<?=site_url('account/remind_password')?>"><?=lang('Account.linkRemindPassword')?></a>
</div>
<div class="col-6 text-right">
<a class="d-block small" href="<?=site_url('account/register')?>"><?=lang('Account.linkRegister')?></a>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

44
application/Views/Account/Register.php

@ -1,40 +1,44 @@
<div class="container"> <div class="container">
<div class="card card-register mx-auto mt-5"> <div class="card card-register mx-auto mt-5">
<div class="card-header"><?=lang('Account.registerText')?></div> <div class="card-header"><?=lang('Account.registerHeader')?></div>
<div class="card-body"> <div class="card-body">
<form method="POST"> <form method="POST">
<?if (isset($errors)):?> <?if (isset($errors)):?>
<div class="alert alert-danger"><?=$errors?></div> <div class="alert alert-danger"><?=$errors?></div>
<?endif;?> <?endif;?>
<?if (isset($infos)):?> <?if (isset($infos)):?>
<div class="alert alert-success"><?=$infos?></div> <div class="alert alert-success"><?=$infos?></div>
<?endif;?> <?endif;?>
<div class="form-group"> <div class="form-group">
<div class="form-label-group"> <div class="form-label-group">
<input type="email" name="email" id="inputEmail" class="form-control" placeholder="<?=lang('Account.registerLabelEmail')?>" required autofocus> <input type="email" name="email" id="inputEmail" class="form-control" placeholder="<?=lang('Account.registerLabelEmail')?>" required autofocus>
<label for="inputEmail"><?=lang('Account.registerLabelEmail')?>*</label> <label for="inputEmail"><?=lang('Account.registerLabelEmail')?>*</label>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="form-label-group"> <div class="form-label-group">
<input type="text" name="username" id="inputUsername" class="form-control" placeholder="<?=lang('Account.registerLabelUsername')?>" <?=($useUsername ? 'required' : '')?>> <input type="text" name="username" id="inputUsername" class="form-control" placeholder="<?=lang('Account.registerLabelUsername')?>" <?=($useUsername ? 'required' : '')?>>
<label for="inputUsername"><?=lang('Account.registerLabelUsername')?><?=($useUsername ? '*' : '')?></label> <label for="inputUsername"><?=lang('Account.registerLabelUsername')?><?=($useUsername ? '*' : '')?></label>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="form-label-group"> <div class="form-label-group">
<input type="password" name="password" id="inputPassword" class="form-control" placeholder="<?=lang('Account.registerLabelPassword')?>" required> <input type="password" name="password" id="inputPassword" class="form-control" placeholder="<?=lang('Account.registerLabelPassword')?>" required>
<label for="inputPassword"><?=lang('Account.registerLabelPassword')?>*</label> <label for="inputPassword"><?=lang('Account.registerLabelPassword')?>*</label>
</div> </div>
</div> </div>
<div class="form-group"> <p class="small">* <?=lang('Account.registerRequired')?></p>
<p>* <?=lang('Account.registerRequired')?></p> <button class="btn btn-primary btn-block" type="submit"><?=lang('Account.registerLabelSubmit')?></button>
</div>
<button class="btn btn-primary btn-block" type="submit"><?=lang('Account.registerLabelSubmit')?></button>
</form> </form>
<div class="text-center"> </div>
<a class="d-block small mt-3" href="<?=site_url('account/login')?>"><?=lang('Account.registerLinkLogin')?></a> <div class="card-footer">
<a class="d-block small" href="<?=site_url('account/forgot_password')?>"><?=lang('Account.registerLinkForgotPassword')?></a> <div class="row">
<div class="col-6">
<a class="d-block small" href="<?=site_url('account/login')?>"><?=lang('Account.linkBackToLogin')?></a>
</div>
<div class="col-6 text-right">
<a class="d-block small" href="<?=site_url('account/remind_password')?>"><?=lang('Account.linkRemindPassword')?></a>
</div>
</div> </div>
</div> </div>
</div> </div>

33
application/Views/Account/RemindPassword.php

@ -0,0 +1,33 @@
<div class="container">
<div class="card card-login mx-auto mt-5">
<div class="card-header"><?=lang('Account.remindPasswordHeader')?></div>
<div class="card-body">
<form method="POST">
<p><?=lang('Account.remindPasswordText')?></p>
<?if (isset($errors)):?>
<div class="alert alert-danger"><?=$errors?></div>
<?endif;?>
<?if (isset($infos)):?>
<div class="alert alert-info"><?=$infos?></div>
<?endif;?>
<div class="form-group">
<div class="form-label-group">
<input type="email" name="email" id="inputEmail" class="form-control" placeholder="<?=lang('Account.remindPasswordLabelEmail')?>" required autofocus>
<label for="inputEmail"><?=lang('Account.remindPasswordLabelEmail')?></label>
</div>
</div>
<button class="btn btn-primary btn-block" type="submit"><?=lang('Account.remindPasswordLabelSubmit')?></button>
</form>
</div>
<div class="card-footer">
<div class="row">
<div class="col-6">
<a class="d-block small" href="<?=site_url('account/login')?>"><?=lang('Account.linkBackToLogin')?></a>
</div>
<div class="col-6 text-right">
<a class="d-block small" href="<?=site_url('account/register')?>"><?=lang('Account.linkRegister')?></a>
</div>
</div>
</div>
</div>
</div>

33
application/Views/Account/ResetPassword.php

@ -0,0 +1,33 @@
<div class="container">
<div class="card card-login mx-auto mt-5">
<div class="card-header"><?=lang('Account.resetPasswordHeader')?></div>
<div class="card-body">
<form method="POST">
<p><?=lang('Account.resetPasswordText')?></p>
<?if (isset($errors)):?>
<div class="alert alert-danger"><?=$errors?></div>
<?endif;?>
<?if (isset($infos)):?>
<div class="alert alert-info"><?=$infos?></div>
<?endif;?>
<div class="form-group">
<div class="form-label-group">
<input type="test" name="verification_code" id="inputVerificationCode" class="form-control" placeholder="<?=lang('Account.resetPasswordLabelVerificationCode')?>" value="<?=$verificationCode?>" required autofocus>
<label for="inputVerificationCode"><?=lang('Account.resetPasswordLabelVerificationCode')?></label>
</div>
</div>
<button class="btn btn-primary btn-block" type="submit"><?=lang('Account.resetPasswordLabelSubmit')?></button>
</form>
</div>
<div class="card-footer">
<div class="row">
<div class="col-6">
<a class="d-block small" href="<?=site_url('account/login')?>"><?=lang('Account.linkBackToLogin')?></a>
</div>
<div class="col-6 text-right">
<a class="d-block small" href="<?=site_url('account/register')?>"><?=lang('Account.linkRegister')?></a>
</div>
</div>
</div>
</div>
</div>
Loading…
Cancel
Save