Compare commits

..

57 Commits

Author SHA1 Message Date
Miguel Nogueira 85c719c24d Fix bad key name 2020-12-19 01:33:59 +00:00
Miguel Nogueira 5df3f965ef Merged in revert-pr-6 (pull request #7)
Revert "Apply fixes from StyleCI (pull request #6)"
2020-10-21 00:31:11 +00:00
Miguel Nogueira 4eb115d165 Revert "Apply fixes from StyleCI (pull request #6)"
This reverts pull request #6.

> This pull request applies code style fixes from an analysis carried out by [StyleCI](https://bitbucket.styleci.io).
> 
> For more information, click [here](https://bitbucket.styleci.io/analyses/a2Jl7D).
2020-10-21 00:29:50 +00:00
Miguel Nogueira 0433ce7693 Merged in analysis-a2Jl7D (pull request #6)
Apply fixes from StyleCI
2020-10-21 00:24:54 +00:00
Miguel Nogueira 773ec570d9 Apply fixes from StyleCI 2020-10-21 00:01:41 +00:00
Miguel Nogueira 53c23f3698 Changed branding for the repo 2020-10-21 00:01:32 +00:00
Miguel Nogueira f1db159eee
Update SECURITY.md 2020-09-08 17:44:56 +01:00
Miguel Nogueira 0d14a65ee5
Create SECURITY.md 2020-09-08 17:32:56 +01:00
Miguel Nogueira 2942157603
Update README.md 2020-09-08 06:16:27 +01:00
Miguel Nogueira 11f3fb90d0
Update README.md 2020-09-08 06:16:14 +01:00
Miguel Nogueira 937a0206a5 Added existing account check to logs 2020-09-08 01:38:56 +01:00
Miguel Nogueira 3598a32ecf Added existing account check to logs 2020-09-08 01:37:33 +01:00
Miguel Nogueira ac8b303e2c Update to logauthfailure 2020-09-08 01:34:47 +01:00
Miguel Nogueira e93abd2ab7 Added logging for successful authentication attempts 2020-09-08 01:31:09 +01:00
Miguel Nogueira 20ab381076 Added logging for failed authentication attempts 2020-09-08 01:26:27 +01:00
Miguel Nogueira e566e40404 Update target user in logs 2020-09-08 00:07:50 +01:00
Miguel Nogueira b0a935b8b3 Add acceptable "permanent" ban time 2020-09-08 00:06:27 +01:00
Miguel Nogueira 0dfb68dba2 Add acceptable "permanent" ban time 2020-09-08 00:05:37 +01:00
Miguel Nogueira 24303052ad Ban validation update 2020-09-07 23:57:50 +01:00
Miguel Nogueira 178bc31a6e Ban datetime format 2020-09-07 23:44:14 +01:00
Miguel Nogueira 98e557a840 Update ban dates 2020-09-07 23:42:09 +01:00
Miguel Nogueira 95bf7c239e Update ban time logic 2020-09-07 23:38:25 +01:00
Miguel Nogueira 4d2595dd39 Update ban logic 2020-09-07 23:33:35 +01:00
Miguel Nogueira 4e81a41210 Updated installation process 2020-09-07 23:22:25 +01:00
Miguel Nogueira 1319ce6b86 Added more debug logging 2020-09-07 22:56:54 +01:00
Miguel Nogueira bea83b650c Added more debug logging 2020-09-07 22:54:20 +01:00
Miguel Nogueira 675cc3c329 Import missing facade 2020-09-07 22:35:42 +01:00
Miguel Nogueira e8119b763c Register Application observers 2020-09-07 21:43:48 +01:00
Miguel Nogueira 04838048ce
Merge pull request #10 from spacejewel-hosting/translate
Force new users to verify email
2020-09-03 20:22:11 +01:00
Miguel Nogueira 87f8e63b24 Force new users to verify email 2020-09-03 20:06:29 +01:00
Miguel Nogueira 7292aab4b7
Merge pull request #9 from spacejewel-hosting/translate
Menu translations and source files
2020-09-03 17:38:18 +01:00
Miguel Nogueira 9f3780d844 Fix trans key 2020-09-03 17:22:28 +01:00
Miguel Nogueira e37b38f2d9
Update README.md 2020-09-03 17:19:15 +01:00
Miguel Nogueira c83e720a6d
Create CONTRIBUTING.md 2020-09-03 17:18:28 +01:00
Miguel Nogueira 9241a83844 Merge branch 'translate' of https://github.com/spacejewel-hosting/staffmanagement into translate 2020-09-03 17:00:57 +01:00
Miguel Nogueira c6685331a8 Updated wrong trans() key names 2020-09-03 17:00:09 +01:00
Miguel Nogueira 9da9b8e6fc
Merge pull request #8 from spacejewel-hosting/l10n_translate
Portuguese menu & AdminLTE translations
2020-09-03 16:48:09 +01:00
Miguel Nogueira bb019f71e2 New translations messages.php (Portuguese) 2020-09-03 16:43:59 +01:00
Miguel Nogueira 0cde3444ce New translations adminlte.php (Portuguese) 2020-09-03 16:43:57 +01:00
Miguel Nogueira b61fb5642e New translations menu.php (Portuguese) 2020-09-03 16:43:56 +01:00
Miguel Nogueira f7614916bf Merge branch 'l10n_translate' into translate 2020-09-03 16:40:23 +01:00
Miguel Nogueira 2ad1548cd6 New translations menu.php (Portuguese) 2020-09-03 16:17:21 +01:00
Miguel Nogueira 43579c8fc9 New translations adminlte.php (Portuguese) 2020-09-03 16:17:20 +01:00
Miguel Nogueira 0c9cea5c05 New translations messages.php (Portuguese) 2020-09-03 16:17:18 +01:00
Miguel Nogueira 4371dd971c New translations menu.php (Spanish) 2020-09-03 16:17:17 +01:00
Miguel Nogueira c57ace1ad9 New translations adminlte.php (Spanish) 2020-09-03 16:17:15 +01:00
Miguel Nogueira c35b37d9b3 New translations messages.php (Spanish) 2020-09-03 16:17:13 +01:00
Miguel Nogueira f25c9f7bc7 New translations menu.php (French) 2020-09-03 16:17:10 +01:00
Miguel Nogueira 25cebeefab New translations adminlte.php (French) 2020-09-03 16:17:09 +01:00
Miguel Nogueira 8b47dbe2e0 New translations messages.php (French) 2020-09-03 16:17:07 +01:00
Miguel Nogueira 290dbe99b6 Update source file menu.php 2020-09-03 16:16:43 +01:00
Miguel Nogueira d7b506ec52 Update source file adminlte.php 2020-09-03 16:16:42 +01:00
Miguel Nogueira d41d94b934 Update source file messages.php 2020-09-03 16:16:40 +01:00
Miguel Nogueira b571d72eaf Update Crowdin configuration file 2020-09-03 16:16:28 +01:00
Miguel Nogueira 0c1f6f75eb Merge remote-tracking branch 'origin/translate' into translate 2020-09-03 16:07:33 +01:00
Miguel Nogueira 5ea9e11a62 AdminLTE i18n Changes
This commit removes unused language files and preserves the English sources for Crowdin. The account confirmation page has also been re-skinned with the current login/register template.
Some missing translations for 2fa were also added to the main messages file.
Sources for translations for the menus were also added.
2020-09-03 16:06:51 +01:00
Miguel Nogueira fbd1e83306
Create CODE_OF_CONDUCT.md 2020-09-03 04:47:42 +01:00
58 changed files with 553 additions and 621 deletions

View File

@ -21,9 +21,6 @@ RECAPTCHA_PRIVATE_KEY=
RECAPTCHA_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify" RECAPTCHA_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify"
# WARNING: Your contact form will be useless if you change this value. Only change this URL if Google updates it. # WARNING: Your contact form will be useless if you change this value. Only change this URL if Google updates it.
IPGEO_API_KEY=""
IPGEO_API_URL=""
MOJANG_STATUS_URL="https://status.mojang.com/check" MOJANG_STATUS_URL="https://status.mojang.com/check"
MOJANG_API_URL="https://api.mojang.com" MOJANG_API_URL="https://api.mojang.com"
@ -32,7 +29,7 @@ IPGEO_API_URL="https://api.ipgeolocation.io/ipgeo"
ARCANEDEV_LOGVIEWER_MIDDLEWARE=web,auth,can:admin.maintenance.logs.view ARCANEDEV_LOGVIEWER_MIDDLEWARE=web,auth,can:admin.maintenance.logs.view
RELEASE=staffmanagement@0.2.0 RELEASE=staffmanagement@0.6.1
SLACK_INTEGRATION_WEBHOOK= SLACK_INTEGRATION_WEBHOOK=
@ -68,4 +65,8 @@ PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
# Mostly for developers, but with Papertrail, you can easily see what the app's users are doing without relying on
# the internal log viewer.
SENTRY_LARAVEL_DSN= SENTRY_LARAVEL_DSN=
PAPERTRAIL_URL=
PAPERTRAIL_PORT

76
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at support@spacejewel-hosting.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

29
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,29 @@
# Thank you for contributing!
Read this file carefully before contributing to the project. It's important that everyone follows these rules to ensure smooth contribution.
## General workflow
Since the project is under version 1.0.0, the master branch can be quite unstable, and even unusable. For this reason, I recommend you stick to the published
releases, unless you intend on helping out with the project.
New features are commited directly to the ``master`` branch, while translations are commited to a special service branch, merged onto ``translate``, tested, and
merged back to master. Above version 1.0.0, new features should follow the same procedure as translations.
## Before commiting
Before commiting, make sure your code adheres to the Laravel coding guidelines, as well as PSR-4. I'll personally review and merge each PR.
Thank you for your interest!
# Bug reports
As always, bug reports should stick to the bug report template. GitHub makes this easy for you by letting you choose which issue template you'd like to use
before reporting an isuse. This helps everyone stay in the same page.
Issues published without a template might take longer to be resolved, or may be ignored and marked ``wontfix``.
# Licensing
Any contributions you make will be under the GNU GPL v3 license, which is the license that covers this project.

View File

@ -1,6 +1,6 @@
# Raspberry Teams - The Simple Staff Application Manager v 0.1.0 [![Crowdin](https://badges.crowdin.net/raspberry-staff-manager/localized.svg)](https://crowdin.com/project/raspberry-staff-manager) # RB Recruiter v 0.6.2 [![Crowdin](https://badges.crowdin.net/raspberry-staff-manager/localized.svg)](https://crowdin.com/project/raspberry-staff-manager)
## The quick and pain-free staff application manager ## The quick and pain-free form management solution for communities
Have you ever gotten tired of managing your Minecraft server/network's applications through Discord (or anything else) and having to scroll through hundreds of new messages just to find that one applicant's username? Have you ever gotten tired of managing your Minecraft server/network's applications through Discord (or anything else) and having to scroll through hundreds of new messages just to find that one applicant's username?
@ -48,6 +48,14 @@ Tech stack:
- jQuery / Plain Javascript - jQuery / Plain Javascript
- vueJS (in the future) - vueJS (in the future)
# Stability
Currently, the ``master`` branch is highly unstable, since it's under active development. Expect it to break with each commit. Even though I make an effort to make sure each commit is good to go before pushing, things might still break unexpectedly, and you may find a lot of bugs (which you should report).
Every released version is currently pre-release. If you really want to run this before version ``1.0.0`` comes out, always stay on the latest version, as those will always be tested before release, ensuring less chaos.
*Note: This application is NOT production ready! It won't be until the first stable release comes out, which might take a bit longer.
# Operating System Requirements # Operating System Requirements
Currently, this application is only supported on Linux environments (Ubuntu 20.04 or derivatives are recommended). Currently, this application is only supported on Linux environments (Ubuntu 20.04 or derivatives are recommended).

19
SECURITY.md Normal file
View File

@ -0,0 +1,19 @@
# Security Policy
## Supported Versions
The following versions are currently supported:
| Version | Supported |
| ------- | ------------------ |
| 0.1.x | :x: |
| 0.5.x | :x: |
| 0.6.x | :white_check_mark: |
## Reporting a Vulnerability
To securely report a vulnerability, you may send me an email directly containing the details of said vulnerability: ``me@nogueira.codes``.
You may optionally encrypt your message with my [public PGP key](http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x48DF709E7405702B).
Use this free [online encryption tool](https://www.igolder.com/pgp/encryption/) if you don't know how to use PGP on your desktop.

View File

@ -17,6 +17,10 @@ class Ban extends Model
]; ];
public $dates = [
'bannedUntil'
];
public function user() public function user()
{ {
return $this->belongsTo('App\User', 'userID', 'id'); return $this->belongsTo('App\User', 'userID', 'id');

View File

@ -99,12 +99,16 @@ class Install extends Command
$settings['MAIL_PASSWORD'] = $this->secret('SMTP Password (Input won\'t be seen)'); $settings['MAIL_PASSWORD'] = $this->secret('SMTP Password (Input won\'t be seen)');
$settings['MAIL_PORT'] = $this->ask('SMTP Server Port'); $settings['MAIL_PORT'] = $this->ask('SMTP Server Port');
$settings['MAIL_HOST'] = $this->ask('SMTP Server Hostname'); $settings['MAIL_HOST'] = $this->ask('SMTP Server Hostname');
$settings['MAIL_FROM_ADDRESS'] = $this->ask('E-mail address to send from');
$this->info('== Notification Settings (5/6) (Slack) =='); $this->info('== Notification Settings (5/6) (Slack) ==');
$settings['SLACK_INTEGRATION_WEBHOOK'] = $this->ask('Integration webhook URL'); $settings['SLACK_INTEGRATION_WEBHOOK'] = $this->ask('Integration webhook URL');
$this->info('== Web Settings (6/6) =='); $this->info('== Web Settings (6/6) ==');
$settings['APP_URL'] = $this->ask('Application\'s URL'); $settings['APP_URL'] = $this->ask('Application\'s URL (ex. https://where.you.installed.theapp.com): ');
$settings['APP_LOGO'] = $this->ask('App logo (Link to an image): ');
$settings['APP_SITEHOMEPAGE'] = $this->ask('Site homepage (appears in the main header): ');
} while(!$this->confirm('Are you sure you want to save these settings? You can always go back and try again.')); } while(!$this->confirm('Are you sure you want to save these settings? You can always go back and try again.'));

View File

@ -15,7 +15,7 @@ class BanController extends Controller
public function insert(BanUserRequest $request, User $user) public function insert(BanUserRequest $request, User $user)
{ {
$this->authorize('create', Ban::class); $this->authorize('create', [Ban::class, $user]);
if (is_null($user->bans)) if (is_null($user->bans))
{ {
@ -50,13 +50,13 @@ class BanController extends Controller
else else
{ {
// Essentially permanent // Essentially permanent
$expiryDate->addYears(100); $expiryDate->addYears(5);
} }
$ban = Ban::create([ $ban = Ban::create([
'userID' => $user->id, 'userID' => $user->id,
'reason' => $reason, 'reason' => $reason,
'bannedUntil' => $expiryDate->toDateTimeString() ?? null, 'bannedUntil' => $expiryDate->format('Y-m-d H:i:s'),
'userAgent' => "Unknown", 'userAgent' => "Unknown",
'authorUserID' => Auth::user()->id 'authorUserID' => Auth::user()->id
]); ]);

View File

@ -7,6 +7,7 @@ use App\Options as Option;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
class OptionsController extends Controller class OptionsController extends Controller
{ {
@ -29,17 +30,33 @@ class OptionsController extends Controller
{ {
if (Auth::user()->can('admin.settings.edit')) if (Auth::user()->can('admin.settings.edit'))
{ {
Log::debug('Updating application options', [
'ip' => $request->ip(),
'ua' => $request->userAgent(),
'username' => Auth::user()->username
]);
foreach($request->all() as $optionName => $option) foreach($request->all() as $optionName => $option)
{ {
try try
{ {
if (Options::optionExists($option)) Log::debug('Going through option ' . $optionName);
if (Options::optionExists($optionName))
{ {
Log::debug('Option exists, updating to new values', [
'opt' => $optionName,
'new_value' => $option
]);
Options::changeOption($optionName, $option); Options::changeOption($optionName, $option);
} }
} }
catch(\Exception $ex) catch(\Exception $ex)
{ {
Log::error('Unable to update options!', [
'msg' => $ex->getMessage(),
'trace' => $ex->getTraceAsString()
]);
report($ex);
$errorCond = true; $errorCond = true;
$request->session()->flash('error', 'An error occurred while trying to save settings: ' . $ex->getMessage()); $request->session()->flash('error', 'An error occurred while trying to save settings: ' . $ex->getMessage());
} }

View File

@ -27,7 +27,7 @@ class BanUserRequest extends FormRequest
{ {
return [ return [
'reason' => 'required|string', 'reason' => 'required|string',
'durationOperand' => 'nullable|integer', 'durationOperand' => 'nullable|string',
'durationOperator' => 'nullable|string' 'durationOperator' => 'nullable|string'
]; ];
} }

View File

@ -0,0 +1,45 @@
<?php
namespace App\Listeners;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Log;
class LogAuthenticationFailure
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param object $event
* @return void
*/
public function handle($event)
{
$targetAccountID = 0;
$originalIP = "0.0.0.0";
if (isset($event->user->id))
{
$targetAccountID = $event->user->id;
}
Log::alert('SECURITY (login): Detected failed authentication attempt!', [
'targetAccountID' => $targetAccountID,
'existingAccount' => ($targetAccountID == 0) ? false : true,
'sourceIP' => request()->ip(),
'matchesAccountLastIP' => request()->ip() == $originalIP,
'sourceUserAgent' => request()->userAgent(),
]);
}
}

View File

@ -0,0 +1,36 @@
<?php
namespace App\Listeners;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Log;
class LogAuthenticationSuccess
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param object $event
* @return void
*/
public function handle($event)
{
Log::info('SECURITY (postauth-pre2fa): Detected successful login attempt', [
'accountID' => $event->user->id,
'sourceIP' => request()->ip(),
'matchesAccountLastIP' => request()->ip() == $event->user->originalIP,
'sourceUserAgent' => request()->userAgent(),
]);
}
}

View File

@ -3,6 +3,7 @@
namespace App\Observers; namespace App\Observers;
use App\Application; use App\Application;
use Illuminate\Support\Facades\Log;
class ApplicationObserver class ApplicationObserver
{ {

View File

@ -39,17 +39,18 @@ class BanPolicy
* Determine whether the user can create models. * Determine whether the user can create models.
* *
* @param \App\User $user * @param \App\User $user
* @param User $targetUser
* @return mixed * @return mixed
*/ */
public function create(User $user) public function create(User $user, User $targetUser)
{ {
Log::debug("Authorization check started", [ Log::debug("Authorization check started", [
'requiredRoles' => 'admin', 'requiredRoles' => 'admin',
'currentRoles' => $user->roles(),
'hasRequiredRole' => $user->hasRole('admin'), 'hasRequiredRole' => $user->hasRole('admin'),
'targetUser' => $targetUser->username,
'isCurrentUser' => Auth::user()->is($user) 'isCurrentUser' => Auth::user()->is($user)
]); ]);
return $user->hasRole('admin') && Auth::user()->isNot($user); return $user->hasRole('admin') && $user->isNot($targetUser);
} }
/** /**

View File

@ -2,6 +2,8 @@
namespace App\Providers; namespace App\Providers;
use App\Application;
use App\Observers\ApplicationObserver;
use App\Observers\UserObserver; use App\Observers\UserObserver;
use App\User; use App\User;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
@ -32,7 +34,9 @@ class AppServiceProvider extends ServiceProvider
]); ]);
Schema::defaultStringLength(191); Schema::defaultStringLength(191);
User::observe(UserObserver::class); User::observe(UserObserver::class);
Application::observe(ApplicationObserver::class);
$this->app['request']->server->set('HTTPS', $this->app->environment() != 'local'); $this->app['request']->server->set('HTTPS', $this->app->environment() != 'local');
} }

View File

@ -2,7 +2,11 @@
namespace App\Providers; namespace App\Providers;
use App\Listeners\LogAuthenticationFailure;
use App\Listeners\LogAuthenticationSuccess;
use App\Listeners\OnUserRegistration; use App\Listeners\OnUserRegistration;
use Illuminate\Auth\Events\Failed;
use Illuminate\Auth\Events\Login;
use Illuminate\Auth\Events\Registered; use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification; use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
@ -20,6 +24,12 @@ class EventServiceProvider extends ServiceProvider
SendEmailVerificationNotification::class, SendEmailVerificationNotification::class,
OnUserRegistration::class OnUserRegistration::class
], ],
Failed::class => [
LogAuthenticationFailure::class
],
Login::class => [
LogAuthenticationSuccess::class
],
'App\Events\ApplicationApprovedEvent' => [ 'App\Events\ApplicationApprovedEvent' => [
'App\Listeners\PromoteUser' 'App\Listeners\PromoteUser'
], ],

View File

@ -7,11 +7,10 @@ use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Spatie\Permission\Traits\HasRoles; use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable class User extends Authenticatable implements MustVerifyEmail
{ {
use Notifiable; use Notifiable;
use HasRoles; use HasRoles;
//use MustVerifyEmail;
/** /**
* The attributes that are mass assignable. * The attributes that are mass assignable.

View File

@ -209,74 +209,76 @@ return [
'menu' => [ 'menu' => [
[ [
'text' => 'Home', 'text' => 'm_home',
'icon' => 'fas fa-home', 'icon' => 'fas fa-home',
'url' => 'dashboard' 'url' => 'dashboard'
], ],
[ [
'text' => 'Directory', 'text' => 'm_directory',
'icon' => 'fas fa-users', 'icon' => 'fas fa-users',
'url' => 'users/directory', 'url' => 'users/directory',
'can' => 'profiles.view.others' 'can' => 'profiles.view.others'
], ],
[ [
'header' => 'Applications', 'header' => 'h_applications',
'can' => 'applications.view.own' 'can' => 'applications.view.own'
], ],
[ [
'text' => 'My Applications', 'text' => 'm_my_applications',
'icon' => 'fas fa-fw fa-list-ul', 'icon' => 'fas fa-fw fa-list-ul',
'can' => 'applications.view.own', 'can' => 'applications.view.own',
'submenu' => [ 'submenu' => [
[ [
'text' => 'Current Applications', 'text' => 'm_curr_applications',
'icon' => 'fas fa-fw fa-check-double', 'icon' => 'fas fa-fw fa-check-double',
'url' => '/applications/my-applications' 'url' => '/applications/my-applications'
] ]
], ],
], ],
'My Profile',
[ [
'text' => 'Profile Settings', 'header' => 'h_my_profile',
],
[
'text' => 'm_profile_settings',
'url' => '/profile/settings', 'url' => '/profile/settings',
'icon' => 'fas fa-fw fa-cog' 'icon' => 'fas fa-fw fa-cog'
], ],
[ [
'text' => 'My Account Settings', 'text' => 'm_account_settings',
'icon' => 'fas fa-user-circle', 'icon' => 'fas fa-user-circle',
'url' => '/profile/settings/account' 'url' => '/profile/settings/account'
], ],
[ [
'header' => 'Application Management', 'header' => 'h_app_management',
'can' => ['applications.view.all', 'applications.vote'] 'can' => ['applications.view.all', 'applications.vote']
], ],
[ [
'text' => 'All applications', 'text' => 'm_all_apps',
'url' => 'applications/staff/all', 'url' => 'applications/staff/all',
'icon' => 'fas fa-list-ol', 'icon' => 'fas fa-list-ol',
'can' => 'applications.view.all' 'can' => 'applications.view.all'
], ],
[ [
'text' => 'Outstanding Applications', 'text' => 'm_outstanding_apps',
'url' => '/applications/staff/outstanding', 'url' => '/applications/staff/outstanding',
'icon' => 'far fa-folder-open', 'icon' => 'far fa-folder-open',
'can' => 'applications.view.all' 'can' => 'applications.view.all'
], ],
[ [
'text' => 'Interview Queue', 'text' => 'm_interview_queue',
'url' => '/applications/staff/pending-interview', 'url' => '/applications/staff/pending-interview',
'icon' => 'fas fa-fw fa-microphone-alt', 'icon' => 'fas fa-fw fa-microphone-alt',
'can' => 'applications.view.all' 'can' => 'applications.view.all'
], ],
[ [
'text' => 'Peer Approval Queue', 'text' => 'm_peer_approval',
'url' => '/applications/staff/peer-review', 'url' => '/applications/staff/peer-review',
'icon' => 'fas fa-fw fa-search', 'icon' => 'fas fa-fw fa-search',
'can' => 'applications.view.all' 'can' => 'applications.view.all'
], ],
[ [
'header' => 'Administration', 'header' => 'h_admin',
'can' => [ // may need to be modified 'can' => [ // may need to be modified
'admin.hiring.*', 'admin.hiring.*',
'admin.userlist', 'admin.userlist',
@ -286,38 +288,38 @@ return [
] ]
], ],
[ [
'text' => 'Staff Members', 'text' => 'm_staff_m',
'icon' => 'fas fa-fw fa-users', 'icon' => 'fas fa-fw fa-users',
'url' => '/hr/staff-members', 'url' => '/hr/staff-members',
'can' => 'admin.stafflist' 'can' => 'admin.stafflist'
], ],
[ // players who haven't been promoted yet [ // players who haven't been promoted yet
'text' => 'Registered Players', 'text' => 'm_reg_players',
'icon' => 'fas fa-fw fa-user-friends', 'icon' => 'fas fa-fw fa-user-friends',
'url' => '/hr/players', 'url' => '/hr/players',
'can' => 'admin.userlist' 'can' => 'admin.userlist'
], ],
[ [
'text' => 'Hiring Management', 'text' => 'sm_hiring_man',
'icon' => 'far fa-calendar-plus', 'icon' => 'far fa-calendar-plus',
'can' => 'admin.hiring.*', 'can' => 'admin.hiring.*',
'submenu' => [ 'submenu' => [
[ [
'text' => 'Open Positions', 'text' => 'm_open_pos',
'icon' => 'fas fa-box-open', 'icon' => 'fas fa-box-open',
'url' => '/admin/positions' 'url' => '/admin/positions'
], ],
[ [
'text' => 'Forms', 'text' => 'sm_forms',
'icon' => 'fab fa-wpforms', 'icon' => 'fab fa-wpforms',
'submenu' => [ 'submenu' => [
[ [
'text' => 'All forms', 'text' => 'sm_all_forms',
'icon' => 'far fa-list-alt', 'icon' => 'far fa-list-alt',
'url' => '/admin/forms' 'url' => '/admin/forms'
], ],
[ [
'text' => 'Form Builder', 'text' => 'm_form_builder',
'icon' => 'fas fa-fw fa-hammer', 'icon' => 'fas fa-fw fa-hammer',
'url' => '/admin/forms/builder' 'url' => '/admin/forms/builder'
] ]
@ -326,18 +328,18 @@ return [
] ]
], ],
[ [
'text' => 'App Settings', 'text' => 'sm_app_settings',
'icon' => 'fas fa-fw fa-cog', 'icon' => 'fas fa-fw fa-cog',
'can' => 'admin.notificationsettings', 'can' => 'admin.notificationsettings',
'submenu' => [ 'submenu' => [
[ [
'text' => 'Global Application Settings', 'text' => 'm_global_app_s',
'icon' => 'fas fa-cogs', 'icon' => 'fas fa-cogs',
'url' => '/admin/settings', 'url' => '/admin/settings',
'can' => 'admin.settings.view' 'can' => 'admin.settings.view'
], ],
[ [
'text' => 'Developer Tools', 'text' => 'm_devtools',
'icon' => 'fas fa-code', 'icon' => 'fas fa-code',
'url' => '/admin/devtools', 'url' => '/admin/devtools',
'can' => 'admin.developertools.use' 'can' => 'admin.developertools.use'
@ -345,7 +347,7 @@ return [
] ]
], ],
[ [
'text' => 'System Logs', 'text' => 'm_s_logs',
'url' => '/admin/maintenance/system-logs', 'url' => '/admin/maintenance/system-logs',
'icon' => 'fas fa-clipboard-list', 'icon' => 'fas fa-clipboard-list',
'can' => 'admin.maintenance.logs.view' 'can' => 'admin.maintenance.logs.view'

View File

@ -1,5 +1,5 @@
files: files:
- source: /**/lang/en/*.php - source: /**/lang/**/en/*.php
ignore: ignore:
- /**/lang/en/*2.php - /**/lang/en/*2.php
translation: /**/lang/%two_letters_code%/%original_file_name% translation: /**/lang/**/%two_letters_code%/%original_file_name%

View File

@ -475,6 +475,8 @@ return [
'2fa_disable_consent' => '"I understand the possible consequences of disabling two factor authentication"', '2fa_disable_consent' => '"I understand the possible consequences of disabling two factor authentication"',
'2fa_remove' => 'Remove 2FA', '2fa_remove' => 'Remove 2FA',
'2fa_remove_extended' => 'Remove Two-Factor Authentication', '2fa_remove_extended' => 'Remove Two-Factor Authentication',
'2fa_send_code' => 'Send 2FA Code',
'2fa_send_code_s' => '2FA Code (ex. 41351)',
'security_lgotherdev' => 'For your security, you\'ll need to re-enter your password before logging out other devices. If you believe your account has been compromised, please change your password instead, as that will automatically log out anyone else who might using your account, and prevent them from signing back in.', 'security_lgotherdev' => 'For your security, you\'ll need to re-enter your password before logging out other devices. If you believe your account has been compromised, please change your password instead, as that will automatically log out anyone else who might using your account, and prevent them from signing back in.',
'password_reenter' => 'Re-enter your password', 'password_reenter' => 'Re-enter your password',

View File

@ -475,6 +475,8 @@ return [
'2fa_disable_consent' => '"I understand the possible consequences of disabling two factor authentication"', '2fa_disable_consent' => '"I understand the possible consequences of disabling two factor authentication"',
'2fa_remove' => 'Remove 2FA', '2fa_remove' => 'Remove 2FA',
'2fa_remove_extended' => 'Remove Two-Factor Authentication', '2fa_remove_extended' => 'Remove Two-Factor Authentication',
'2fa_send_code' => 'Send 2FA Code',
'2fa_send_code_s' => '2FA Code (ex. 41351)',
'security_lgotherdev' => 'For your security, you\'ll need to re-enter your password before logging out other devices. If you believe your account has been compromised, please change your password instead, as that will automatically log out anyone else who might using your account, and prevent them from signing back in.', 'security_lgotherdev' => 'For your security, you\'ll need to re-enter your password before logging out other devices. If you believe your account has been compromised, please change your password instead, as that will automatically log out anyone else who might using your account, and prevent them from signing back in.',
'password_reenter' => 'Re-enter your password', 'password_reenter' => 'Re-enter your password',

View File

@ -475,6 +475,8 @@ return [
'2fa_disable_consent' => '"I understand the possible consequences of disabling two factor authentication"', '2fa_disable_consent' => '"I understand the possible consequences of disabling two factor authentication"',
'2fa_remove' => 'Remove 2FA', '2fa_remove' => 'Remove 2FA',
'2fa_remove_extended' => 'Remove Two-Factor Authentication', '2fa_remove_extended' => 'Remove Two-Factor Authentication',
'2fa_send_code' => 'Send 2FA Code',
'2fa_send_code_s' => '2FA Code (ex. 41351)',
'security_lgotherdev' => 'For your security, you\'ll need to re-enter your password before logging out other devices. If you believe your account has been compromised, please change your password instead, as that will automatically log out anyone else who might using your account, and prevent them from signing back in.', 'security_lgotherdev' => 'For your security, you\'ll need to re-enter your password before logging out other devices. If you believe your account has been compromised, please change your password instead, as that will automatically log out anyone else who might using your account, and prevent them from signing back in.',
'password_reenter' => 'Re-enter your password', 'password_reenter' => 'Re-enter your password',

View File

@ -121,7 +121,7 @@ return [
'contact_cta' => 'Alguma pergunta? Deixe uma mensagem!', 'contact_cta' => 'Alguma pergunta? Deixe uma mensagem!',
'contact_disclaimer' => '*Este não é um formulário de candidatura. Qualquer candidatura enviada aqui será ignorada.', 'contact_disclaimer' => '*Este não é um formulário de candidatura. Qualquer candidatura enviada aqui será ignorada.',
'contactlabel_name' => 'Nome', 'contactlabel_name' => 'Nome',
'contactlabel_email' => 'E-mail', 'contactlabel_email' => 'Endereço E-mail',
'contactlabel_subject' => 'Assunto (ex. sugestão do site)', 'contactlabel_subject' => 'Assunto (ex. sugestão do site)',
'contactlabel_send' => 'Enviar', 'contactlabel_send' => 'Enviar',
@ -475,6 +475,8 @@ return [
'2fa_disable_consent' => '"Eu compreendo as possíveis consequências de desativar a autenticação de dois fatores"', '2fa_disable_consent' => '"Eu compreendo as possíveis consequências de desativar a autenticação de dois fatores"',
'2fa_remove' => 'Remover 2FA', '2fa_remove' => 'Remover 2FA',
'2fa_remove_extended' => 'Desativar autenticação em dois passos', '2fa_remove_extended' => 'Desativar autenticação em dois passos',
'2fa_send_code' => 'Enviar código 2FA',
'2fa_send_code_s' => 'Código de autenticação (ex. 41351)',
'security_lgotherdev' => 'Para sua segurança, você precisará re-introduzir a sua senha antes de desconectar outros dispositivos. Se você acredita que sua conta foi comprometida, altere sua senha em vez disso, já que isso desconectará automaticamente qualquer pessoa que poderá estar usando sua conta e impedir que faça login novamente.', 'security_lgotherdev' => 'Para sua segurança, você precisará re-introduzir a sua senha antes de desconectar outros dispositivos. Se você acredita que sua conta foi comprometida, altere sua senha em vez disso, já que isso desconectará automaticamente qualquer pessoa que poderá estar usando sua conta e impedir que faça login novamente.',
'password_reenter' => 'Repita a sua palavra-passe', 'password_reenter' => 'Repita a sua palavra-passe',

View File

@ -1,21 +0,0 @@
<?php
return [
'full_name' => 'الاسم الثلاثي',
'email' => 'البريد الإلكتروني',
'password' => 'كلمة السر',
'retype_password' => 'أعد إدخال كلمة السر',
'remember_me' => 'ذكرني',
'register' => 'تسجيل جديد',
'register_a_new_membership' => 'تسجيل عضوية جديدة',
'i_forgot_my_password' => 'نسيت كلمة السر؟',
'i_already_have_a_membership' => 'هذا الحساب لديه عضوية سابقة',
'sign_in' => 'تسجيل الدخول',
'log_out' => 'تسجيل خروج',
'toggle_navigation' => 'القائمة الجانبية',
'login_message' => 'يجب تسجيل الدخول',
'register_message' => 'تم تسجيل العضوية الجديدة ',
'password_reset_message' => 'تم إعادة تعيين كلمة المرور',
'reset_password' => 'إعادة تعيين كلمة السر',
'send_password_reset_link' => 'إرسال رابط إعادة تعيين كلمة السر',
];

View File

@ -1,21 +0,0 @@
<?php
return [
'full_name' => 'Nom complet',
'email' => 'Email',
'password' => 'Contrasenya',
'retype_password' => 'Confirmar la contrasenya',
'remember_me' => 'Recordar-me',
'register' => 'Registrar-se',
'register_a_new_membership' => 'Crear un nou compte',
'i_forgot_my_password' => 'He oblidat la meva contrasenya',
'i_already_have_a_membership' => 'Ja tinc un compte',
'sign_in' => 'Accedir',
'log_out' => 'Sortir',
'toggle_navigation' => 'Commutar la navegació',
'login_message' => 'Autenticar-se per a iniciar sessió',
'register_message' => 'Crear un nou compte',
'password_reset_message' => 'Restablir la contrasenya',
'reset_password' => 'Restablir la contrasenya',
'send_password_reset_link' => 'Enviar enllaç de restabliment de contrasenya',
];

View File

@ -1,27 +0,0 @@
<?php
return [
'full_name' => 'Vollständiger Name',
'email' => 'E-Mail',
'password' => 'Passwort',
'retype_password' => 'Passwort bestätigen',
'remember_me' => 'Angemeldet bleiben',
'register' => 'Registrieren',
'register_a_new_membership' => 'Ein neues Konto registrieren',
'i_forgot_my_password' => 'Ich habe mein Passwort vergessen',
'i_already_have_a_membership' => 'Ich bin bereits registriert',
'sign_in' => 'Anmelden',
'log_out' => 'Abmelden',
'toggle_navigation' => 'Navigation umschalten',
'login_message' => 'Bitte melden Sie sich an, um auf den geschützten Bereich zuzugreifen',
'register_message' => 'Bitte füllen Sie das Formular aus, um ein neues Konto zu registrieren',
'password_reset_message' => 'Bitte geben Sie Ihre E-Mail Adresse ein, um Ihr Passwort zurückzusetzen',
'reset_password' => 'Passwort zurücksetzen',
'send_password_reset_link' => 'Link zur Passwortwiederherstellung senden',
'verify_message' => 'Ihr Account muss noch bestätigt werden',
'verify_email_sent' => 'Es wurde ein neuer Bestätigungslink an Ihre E-Mail Adresse gesendet.',
'verify_check_your_email' => 'Bevor Sie fortfahren, überprüfen Sie bitte Ihre E-Mail auf einen Bestätigungslink.',
'verify_if_not_recieved' => 'Wenn Sie die E-Mail nicht empfangen haben',
'verify_request_another' => 'klicken Sie hier, um eine neue E-Mail anzufordern',
];

View File

@ -1,19 +0,0 @@
<?php
return [
'main_navigation' => 'HAUPTMENÜ',
'blog' => 'Blog',
'pages' => 'Seiten',
'account_settings' => 'KONTOEINSTELLUNGEN',
'profile' => 'Profil',
'change_password' => 'Passwort ändern',
'multilevel' => 'Multi Level',
'level_one' => 'Level 1',
'level_two' => 'Level 2',
'level_three' => 'Level 3',
'labels' => 'Beschriftungen',
'important' => 'Wichtig',
'warning' => 'Warnung',
'information' => 'Information',
];

View File

@ -19,9 +19,10 @@ return [
'password_reset_message' => 'Reset Password', 'password_reset_message' => 'Reset Password',
'reset_password' => 'Reset Password', 'reset_password' => 'Reset Password',
'send_password_reset_link' => 'Send Password Reset Link', 'send_password_reset_link' => 'Send Password Reset Link',
'verify_message' => 'Your account needs a verification', 'verify_message' => 'Your account needs verification',
'verify_email_sent' => 'A fresh verification link has been sent to your email address.', 'verify_email_sent' => 'A fresh verification link has been sent to your email address.',
'verify_check_your_email' => 'Before proceeding, please check your email for a verification link.', 'verify_check_your_email' => 'Before proceeding, please check your email for a verification link.',
'verify_if_not_recieved' => 'If you did not receive the email', 'verify_if_not_recieved' => 'If you did not receive the email',
'verify_request_another' => 'click here to request another', 'verify_request_another' => 'click here to request another',
'confirm_password_message' => 'Please, confirm your password to continue.',
]; ];

View File

@ -2,18 +2,31 @@
return [ return [
'main_navigation' => 'MAIN NAVIGATION', 'm_home' => 'Home',
'blog' => 'Blog', 'm_directory' => 'Directory',
'pages' => 'Pages', 'h_applications' => 'Applications',
'account_settings' => 'ACCOUNT SETTINGS', 'm_my_applications' => 'My Applications',
'profile' => 'Profile', 'm_curr_applications' => 'Current Applications',
'change_password' => 'Change Password', 'h_my_profile' => 'My Profile',
'multilevel' => 'Multi Level', 'm_profile_settings' => 'Profile Settings',
'level_one' => 'Level 1', 'm_account_settings' => 'My Account Settings',
'level_two' => 'Level 2', 'h_app_management' => 'Application Management',
'level_three' => 'Level 3', 'm_all_apps' => 'All Applications',
'labels' => 'LABELS', 'm_outstanding_apps' => 'Outstanding Applications',
'important' => 'Important', 'm_interview_queue' => 'Interview Queue',
'warning' => 'Warning', 'm_peer_approval' => 'Peer Approval Queue',
'information' => 'Information', 'h_admin' => 'Administration',
'm_staff_m' => 'Staff Members',
'm_reg_players' => 'Registered Players',
'sm_hiring_man' => 'Hiring Management',
'm_open_pos' => 'Open Positions',
'sm_forms' => 'Forms',
'sm_all_forms' => 'All Forms',
'm_form_builder' => 'Form Builder',
'sm_app_settings' => 'App Settings',
'm_global_app_s' => 'Global App Settings',
'm_devtools' => 'Developer Tools',
'm_s_logs' => 'System Logs'
]; ];

View File

@ -2,26 +2,27 @@
return [ return [
'full_name' => 'Nombre completo', 'full_name' => 'Full name',
'email' => 'Email', 'email' => 'Email',
'password' => 'Contraseña', 'password' => 'Password',
'retype_password' => 'Confirmar la contraseña', 'retype_password' => 'Retype password',
'remember_me' => 'Recordarme', 'remember_me' => 'Remember Me',
'register' => 'Registrarse', 'register' => 'Register',
'register_a_new_membership' => 'Crear una nueva cuenta', 'register_a_new_membership' => 'Register a new membership',
'i_forgot_my_password' => 'Olvidé mi contraseña', 'i_forgot_my_password' => 'I forgot my password',
'i_already_have_a_membership' => 'Ya tengo una cuenta', 'i_already_have_a_membership' => 'I already have a membership',
'sign_in' => 'Acceder', 'sign_in' => 'Sign In',
'log_out' => 'Salir', 'log_out' => 'Log Out',
'toggle_navigation' => 'Alternar barra de navegación', 'toggle_navigation' => 'Toggle navigation',
'login_message' => 'Autenticarse para iniciar sesión', 'login_message' => 'Sign in to start your session',
'register_message' => 'Crear una nueva cuenta', 'register_message' => 'Register a new membership',
'password_reset_message' => 'Restablecer la contraseña', 'password_reset_message' => 'Reset Password',
'reset_password' => 'Restablecer la contraseña', 'reset_password' => 'Reset Password',
'send_password_reset_link' => 'Enviar enlace para restablecer la contraseña', 'send_password_reset_link' => 'Send Password Reset Link',
'verify_message' => 'Tu cuenta necesita una verificación', 'verify_message' => 'Your account needs verification',
'verify_email_sent' => 'Se ha enviado un nuevo enlace de verificación a su correo electrónico.', 'verify_email_sent' => 'A fresh verification link has been sent to your email address.',
'verify_check_your_email' => 'Antes de continuar, busque en su correo electrónico un enlace de verificación.', 'verify_check_your_email' => 'Before proceeding, please check your email for a verification link.',
'verify_if_not_recieved' => 'Si no has recibido el correo electrónico', 'verify_if_not_recieved' => 'If you did not receive the email',
'verify_request_another' => 'haga clic aquí para solicitar otro', 'verify_request_another' => 'click here to request another',
'confirm_password_message' => 'Please, confirm your password to continue.',
]; ];

View File

@ -2,18 +2,31 @@
return [ return [
'main_navigation' => 'MENU PRINCIPAL', 'm_home' => 'Home',
'blog' => 'Blog', 'm_directory' => 'Directory',
'pages' => 'Páginas', 'h_applications' => 'Applications',
'account_settings' => 'AJUSTES DE LA CUENTA', 'm_my_applications' => 'My Applications',
'profile' => 'Perfil', 'm_curr_applications' => 'Current Applications',
'change_password' => 'Cambiar Contraseña', 'h_my_profile' => 'My Profile',
'multilevel' => 'Multi Nivel', 'm_profile_settings' => 'Profile Settings',
'level_one' => 'Nivel 1', 'm_account_settings' => 'My Account Settings',
'level_two' => 'Nivel 2', 'h_app_management' => 'Application Management',
'level_three' => 'Nivel 3', 'm_all_apps' => 'All Applications',
'labels' => 'ETIQUETAS', 'm_outstanding_apps' => 'Outstanding Applications',
'important' => 'Importante', 'm_interview_queue' => 'Interview Queue',
'warning' => 'Advertencia', 'm_peer_approval' => 'Peer Approval Queue',
'information' => 'Información', 'h_admin' => 'Administration',
'm_staff_m' => 'Staff Members',
'm_reg_players' => 'Registered Players',
'sm_hiring_man' => 'Hiring Management',
'm_open_pos' => 'Open Positions',
'sm_forms' => 'Forms',
'sm_all_forms' => 'All Forms',
'm_form_builder' => 'Form Builder',
'sm_app_settings' => 'App Settings',
'm_global_app_s' => 'Global App Settings',
'm_devtools' => 'Developer Tools',
'm_s_logs' => 'System Logs'
]; ];

View File

@ -1,22 +0,0 @@
<?php
return [
'full_name' => 'نام',
'email' => 'ایمیل',
'password' => 'رمز عبور',
'retype_password' => 'تکرار رمز عبور',
'remember_me' => 'مرا به یاد داشته باش',
'register' => 'ثبت نام',
'register_a_new_membership' => 'ایجاد یک عضویت جدید',
'i_forgot_my_password' => 'رمز عبور را فراموش کرده ام',
'i_already_have_a_membership' => 'قبلا ثبت نام کرده ام',
'sign_in' => 'ورود',
'log_out' => 'خروج',
'toggle_navigation' => 'نمایش/مخفی کردن منو',
'login_message' => 'وارد شوید',
'register_message' => 'ثبت نام',
'password_reset_message' => 'بازنشانی رمز عبور',
'reset_password' => 'بازنشانی رمز عبور',
'send_password_reset_link' => 'ارسال لینک بازنشانی رمز عبور',
];

View File

@ -2,21 +2,27 @@
return [ return [
'full_name' => 'Nom', 'full_name' => 'Full name',
'email' => 'Email', 'email' => 'Email',
'password' => 'Mot de passe', 'password' => 'Password',
'retype_password' => 'Entrez à nouveau le mot de passe', 'retype_password' => 'Retype password',
'remember_me' => 'Se souvenir de moi', 'remember_me' => 'Remember Me',
'register' => 'Enregistrement', 'register' => 'Register',
'register_a_new_membership' => 'Enregistrer un nouveau membre', 'register_a_new_membership' => 'Register a new membership',
'i_forgot_my_password' => 'J\'ai oublié mon mot de passe', 'i_forgot_my_password' => 'I forgot my password',
'i_already_have_a_membership' => 'J\'ai déjà un compte', 'i_already_have_a_membership' => 'I already have a membership',
'sign_in' => 'Connexion', 'sign_in' => 'Sign In',
'log_out' => 'Déconnexion', 'log_out' => 'Log Out',
'toggle_navigation' => 'Basculer la navigation', 'toggle_navigation' => 'Toggle navigation',
'login_message' => 'Connectez-vous pour commencer une session', 'login_message' => 'Sign in to start your session',
'register_message' => 'Enregistrement d\'un nouveau membre', 'register_message' => 'Register a new membership',
'password_reset_message' => 'Réinitialisation du mot de passe', 'password_reset_message' => 'Reset Password',
'reset_password' => 'Réinitialisation du mot de passe', 'reset_password' => 'Reset Password',
'send_password_reset_link' => 'Envoi de la réinitialisation du mot de passe', 'send_password_reset_link' => 'Send Password Reset Link',
'verify_message' => 'Your account needs verification',
'verify_email_sent' => 'A fresh verification link has been sent to your email address.',
'verify_check_your_email' => 'Before proceeding, please check your email for a verification link.',
'verify_if_not_recieved' => 'If you did not receive the email',
'verify_request_another' => 'click here to request another',
'confirm_password_message' => 'Please, confirm your password to continue.',
]; ];

View File

@ -0,0 +1,32 @@
<?php
return [
'm_home' => 'Home',
'm_directory' => 'Directory',
'h_applications' => 'Applications',
'm_my_applications' => 'My Applications',
'm_curr_applications' => 'Current Applications',
'h_my_profile' => 'My Profile',
'm_profile_settings' => 'Profile Settings',
'm_account_settings' => 'My Account Settings',
'h_app_management' => 'Application Management',
'm_all_apps' => 'All Applications',
'm_outstanding_apps' => 'Outstanding Applications',
'm_interview_queue' => 'Interview Queue',
'm_peer_approval' => 'Peer Approval Queue',
'h_admin' => 'Administration',
'm_staff_m' => 'Staff Members',
'm_reg_players' => 'Registered Players',
'sm_hiring_man' => 'Hiring Management',
'm_open_pos' => 'Open Positions',
'sm_forms' => 'Forms',
'sm_all_forms' => 'All Forms',
'm_form_builder' => 'Form Builder',
'sm_app_settings' => 'App Settings',
'm_global_app_s' => 'Global App Settings',
'm_devtools' => 'Developer Tools',
'm_s_logs' => 'System Logs'
];

View File

@ -1,22 +0,0 @@
<?php
return [
'full_name' => 'Ime',
'email' => 'Email',
'password' => 'Lozinka',
'retype_password' => 'Ponovljena lozinka',
'remember_me' => 'Zapamti me',
'register' => 'Novi korisnik',
'register_a_new_membership' => 'Registracija',
'i_forgot_my_password' => 'Zaboravljena zaporka',
'i_already_have_a_membership' => 'Već imam korisnički račun',
'sign_in' => 'Prijava',
'log_out' => 'Odjava',
'toggle_navigation' => 'Pregled navigacije',
'login_message' => 'Prijava',
'register_message' => 'Registracija',
'password_reset_message' => 'Nova lozinka',
'reset_password' => 'Nova lozinka',
'send_password_reset_link' => 'Pošalji novi zahtjev lozinke',
];

View File

@ -1,21 +0,0 @@
<?php
return [
'full_name' => 'Teljes név',
'email' => 'Email',
'password' => 'Jelszó',
'retype_password' => 'Jelszó újra',
'remember_me' => 'Emlékezz rám',
'register' => 'Regisztráció',
'register_a_new_membership' => 'Regisztrálás új tagként',
'i_forgot_my_password' => 'Elfelejtetem a jelszavam',
'i_already_have_a_membership' => 'Már tag vagyok',
'sign_in' => 'Belépés',
'log_out' => 'Kilépés',
'toggle_navigation' => 'Lenyíló navigáció',
'login_message' => 'Belépés a munkamenet elkezdéséhez',
'register_message' => 'Regisztrálás új tagként',
'password_reset_message' => 'Jelszó visszaállítása',
'reset_password' => 'Jelszó visszaállítása',
'send_password_reset_link' => 'Jelszó visszaállítás link küldése',
];

View File

@ -1,22 +0,0 @@
<?php
return [
'full_name' => 'Nome completo',
'email' => 'Email',
'password' => 'Password',
'retype_password' => 'Ripeti password',
'remember_me' => 'Ricordami',
'register' => 'Registrazione',
'register_a_new_membership' => 'Registra un nuovo abbonamento',
'i_forgot_my_password' => 'Ho dimenticato la password',
'i_already_have_a_membership' => 'Ho già un abbonamento',
'sign_in' => 'Accedi',
'log_out' => 'Logout',
'toggle_navigation' => 'Attiva la navigazione',
'login_message' => 'Accedi per iniziare la tua sessione',
'register_message' => 'Registra un nuovo abbonamento',
'password_reset_message' => 'Resetta la password',
'reset_password' => 'Resetta la password',
'send_password_reset_link' => 'Invia link di reset della password',
];

View File

@ -1,27 +0,0 @@
<?php
return [
'full_name' => '氏名',
'email' => 'メールアドレス',
'password' => 'パスワード',
'retype_password' => 'もう一度入力',
'remember_me' => 'パスワードを記憶する',
'register' => '登録する',
'register_a_new_membership' => 'アカウントを登録する',
'i_forgot_my_password' => 'パスワードを忘れた',
'i_already_have_a_membership' => 'すでにアカウントを持っている',
'sign_in' => 'ログイン',
'log_out' => 'ログアウト',
'toggle_navigation' => 'ナビゲーションを開閉',
'login_message' => 'ログインしてセッションを開始する',
'register_message' => 'アカウントを登録する',
'password_reset_message' => 'パスワードをリセットする',
'reset_password' => 'パスワードをリセットする',
'send_password_reset_link' => 'パスワードリセットリンクを送信する。',
'verify_message' => 'あなたのアカウントは認証が必要です。',
'verify_email_sent' => 'あなたのメールアドレスに認証用のリンクを送信しました。',
'verify_check_your_email' => '続行する前に、認証用リンクについてメールを確認してください。',
'verify_if_not_recieved' => 'メールが届かない場合',
'verify_request_another' => 'ここをクリックしてもう一度送信する',
];

View File

@ -1,19 +0,0 @@
<?php
return [
'main_navigation' => 'メインメニュー',
'blog' => 'ブログ',
'pages' => 'ページ',
'account_settings' => 'アカウント設定',
'profile' => 'プロフィール',
'change_password' => 'パスワード変更',
'multilevel' => 'マルチ階層',
'level_one' => '階層 1',
'level_two' => '階層 2',
'level_three' => '階層 3',
'labels' => 'ラベル',
'important' => '重要',
'warning' => '警告',
'information' => 'インフォメーション',
];

View File

@ -1,22 +0,0 @@
<?php
return [
'full_name' => 'Volledige naam',
'email' => 'E-mailadres',
'password' => 'Wachtwoord',
'retype_password' => 'Wachtwoord nogmaals invoeren',
'remember_me' => 'Ingelogd blijven',
'register' => 'Registreren',
'register_a_new_membership' => 'Registreer een nieuw lidmaatschap',
'i_forgot_my_password' => 'Ik ben mijn wachtwoord vergeten',
'i_already_have_a_membership' => 'Ik heb al een lidmaatschap',
'sign_in' => 'Inloggen',
'log_out' => 'Uitloggen',
'toggle_navigation' => 'Schakel navigatie',
'login_message' => 'Log in om je sessie te starten',
'register_message' => 'Registreer een nieuw lidmaatschap',
'password_reset_message' => 'Wachtwoord herstellen',
'reset_password' => 'Wachtwoord herstellen',
'send_password_reset_link' => 'Verzend link voor wachtwoordherstel',
];

View File

@ -1,22 +0,0 @@
<?php
return [
'full_name' => 'Imię i nazwisko',
'email' => 'Email',
'password' => 'Hasło',
'retype_password' => 'Powtórz hasło',
'remember_me' => 'Zapamiętaj mnie',
'register' => 'Zarejestruj',
'register_a_new_membership' => 'Załóż nowe konto',
'i_forgot_my_password' => 'Zapomniałem hasła',
'i_already_have_a_membership' => 'Mam już konto',
'sign_in' => 'Zaloguj',
'log_out' => 'Wyloguj',
'toggle_navigation' => 'Przełącz nawigację',
'login_message' => 'Zaloguj się aby uzyskać dostęp do panelu',
'register_message' => 'Załóż nowe konto',
'password_reset_message' => 'Resetuj hasło',
'reset_password' => 'Resetuj hasło',
'send_password_reset_link' => 'Wyślij link do resetowania hasła',
];

View File

@ -1,22 +0,0 @@
<?php
return [
'full_name' => 'Nome completo',
'email' => 'Email',
'password' => 'Senha',
'retype_password' => 'Repita a senha',
'remember_me' => 'Lembrar-me',
'register' => 'Registrar',
'register_a_new_membership' => 'Registrar um novo membro',
'i_forgot_my_password' => 'Esqueci minha senha',
'i_already_have_a_membership' => 'Já sou um membro',
'sign_in' => 'Entrar',
'log_out' => 'Sair',
'toggle_navigation' => 'Trocar navegação',
'login_message' => 'Entre para iniciar uma nova sessão',
'register_message' => 'Registrar um novo membro',
'password_reset_message' => 'Recuperar senha',
'reset_password' => 'Recuperar senha',
'send_password_reset_link' => 'Enviar link de recuperação de senha',
];

View File

@ -1,19 +0,0 @@
<?php
return [
'main_navigation' => 'Navegação Principal',
'blog' => 'Blog',
'pages' => 'Página',
'account_settings' => 'Configurações da Conta',
'profile' => 'Perfil',
'change_password' => 'Mudar Senha',
'multilevel' => 'Multinível',
'level_one' => 'Nível 1',
'level_two' => 'Nível 2',
'level_three' => 'Nível 3',
'labels' => 'Etiquetas',
'Important' => 'Importante',
'Warning' => 'Aviso',
'Information' => 'Informação',
];

View File

@ -0,0 +1,28 @@
<?php
return [
'full_name' => 'Nome completo',
'email' => 'Email',
'password' => 'Palavra-passe',
'retype_password' => 'Insira novamente a palavra-passe',
'remember_me' => 'Lembrar-me',
'register' => 'Registe-se',
'register_a_new_membership' => 'Registrar um novo membro',
'i_forgot_my_password' => 'Esqueci-me da minha palavra-passe',
'i_already_have_a_membership' => 'Já tenho conta',
'sign_in' => 'Iniciar Sessão',
'log_out' => 'Terminar sessão',
'toggle_navigation' => 'Ativar/desativar navegação',
'login_message' => 'Faça o login para iniciar sua sessão',
'register_message' => 'Registar um novo membro',
'password_reset_message' => 'Repor Palavra-Passe',
'reset_password' => 'Repor Palavra-Passe',
'send_password_reset_link' => 'Enviar Link para Recuperação de Senha',
'verify_message' => 'A sua conta precisa de verificação',
'verify_email_sent' => 'Um e-mail com um link de verificação foi enviado para seu endereço de e-mail.',
'verify_check_your_email' => 'Antes de prosseguir, verifique seu e-mail para um link de verificação.',
'verify_if_not_recieved' => 'Se você não recebeu o e-mail',
'verify_request_another' => 'clique aqui para solicitar outro',
'confirm_password_message' => 'Por favor, confirma a tua palavra-passe para continuar.',
];

View File

@ -0,0 +1,32 @@
<?php
return [
'm_home' => 'Início',
'm_directory' => 'Diretório',
'h_applications' => 'Candidaturas',
'm_my_applications' => 'As minhas Candidaturas',
'm_curr_applications' => 'Candidaturas Atuais',
'h_my_profile' => 'Meu perfil',
'm_profile_settings' => 'Configurações do Perfil',
'm_account_settings' => 'Definições de Conta',
'h_app_management' => 'Gestão de Candidaturas',
'm_all_apps' => 'Todas as Candidaturas',
'm_outstanding_apps' => 'Candidaturas Pendendes',
'm_interview_queue' => 'Fila de entrevistas',
'm_peer_approval' => 'Fila de Aprovação por Pares',
'h_admin' => 'Administração',
'm_staff_m' => 'Membros da Equipa',
'm_reg_players' => 'Jogadores registados',
'sm_hiring_man' => 'Gestão de Contratação',
'm_open_pos' => 'Vagas',
'sm_forms' => 'Formulários',
'sm_all_forms' => 'Todos os Formulários',
'm_form_builder' => 'Construtor de Formulários',
'sm_app_settings' => 'Configurações da App',
'm_global_app_s' => 'Definições Globais',
'm_devtools' => 'Ferramentas de Programador',
'm_s_logs' => 'Registos do Sistema'
];

View File

@ -1,23 +0,0 @@
<?php
return [
'full_name' => 'Полное имя',
'email' => 'Почта',
'password' => 'Пароль',
'retype_password' => 'Подтверждение пароля',
'remember_me' => 'Запомнить меня',
'register' => 'Регистрация',
'register_a_new_membership' => 'Регистрация нового пользователя',
'i_forgot_my_password' => 'Восстановление пароля',
'i_already_have_a_membership' => 'Я уже зарегистрирован',
'sign_in' => 'Вход',
'log_out' => 'Выход',
'toggle_navigation' => 'Переключить навигацию',
'login_message' => 'Вход в систему',
'register_message' => 'Регистрация нового пользователя',
'password_reset_message' => 'Восстановление пароля',
'reset_password' => 'Восстановление пароля',
'send_password_reset_link' => 'Отправить ссылку для восстановления пароля',
];

View File

@ -1,19 +0,0 @@
<?php
return [
'main_navigation' => 'ГЛАВНОЕ МЕНЮ',
'blog' => 'Блог',
'pages' => 'Страницы',
'account_settings' => 'НАСТРОЙКИ ПРОФИЛЯ',
'profile' => 'Профиль',
'change_password' => 'Изменить пароль',
'multilevel' => 'Многоуровневое меню',
'level_one' => 'Уровень 1',
'level_two' => 'Уровень 2',
'level_three' => 'Уровень 3',
'labels' => 'Метки',
'important' => 'Важно',
'warning' => 'Внимание',
'information' => 'Информация',
];

View File

@ -1,27 +0,0 @@
<?php
return [
'full_name' => 'Ad ve Soyadı',
'email' => 'E-Posta Adresi',
'password' => 'Parola',
'retype_password' => 'Yeniden Parola',
'remember_me' => 'Beni Hatırla',
'register' => 'Kaydol',
'register_a_new_membership' => 'Yeni üye kaydı',
'i_forgot_my_password' => 'Parolamı unuttum',
'i_already_have_a_membership' => 'Zaten üye kaydım var',
'sign_in' => 'Giriş Yap',
'log_out' => ıkış Yap',
'toggle_navigation' => 'Ana menüyü aç/kapa',
'login_message' => 'Oturumunuzu devam ettirmek için giriş yapmalısınız',
'register_message' => 'Yeni üye kaydı oluştur',
'password_reset_message' => 'Parola Sıfırlama',
'reset_password' => 'Parola Sıfırlama',
'send_password_reset_link' => 'Parola Sıfırlama Linki Gönder',
'verify_message' => 'Hesabınızın doğrulanmaya ihtiyacı var',
'verify_email_sent' => 'Hesap doğrulama linki E-posta adresinize gönderildi.',
'verify_check_your_email' => 'İşlemlere devam etmeden önce doğrulama linki için e-posta adresinizi kontrol edin.',
'verify_if_not_recieved' => 'Eğer doğrulama e-postası adresinize ulaşmadıysa',
'verify_request_another' => 'buraya tıklayarak yeni bir doğrulama linki talep edebilirsiniz',
];

View File

@ -1,19 +0,0 @@
<?php
return [
'main_navigation' => 'ANA MENÜ',
'blog' => 'Blog',
'pages' => 'Sayfalar',
'account_settings' => 'HESAP AYARLARI',
'profile' => 'Profil',
'change_password' => 'Parolanı değiştir',
'multilevel' => 'Çoklu Seviye',
'level_one' => 'Seviye 1',
'level_two' => 'Seviye 2',
'level_three' => 'Seviye 3',
'labels' => 'ETİKETLER',
'important' => 'Önemli',
'warning' => 'Uyarı',
'information' => 'Bilgi',
];

View File

@ -1,23 +0,0 @@
<?php
return [
'full_name' => 'Повне і\'мя',
'email' => 'Пошта',
'password' => 'Пароль',
'retype_password' => 'Підтвердження пароля',
'remember_me' => 'Запам\'ятати мене',
'register' => 'Реєстрація',
'register_a_new_membership' => 'Реєстрація нового користувача',
'i_forgot_my_password' => 'Відновлення пароля',
'i_already_have_a_membership' => 'Я вже зареєстрований',
'sign_in' => 'Вхід',
'log_out' => 'Вихід',
'toggle_navigation' => 'Переключити навігацію',
'login_message' => 'Вхід до системи',
'register_message' => 'Реєстрація нового користувача',
'password_reset_message' => 'Відновлення пароля',
'reset_password' => 'Відновлення пароля',
'send_password_reset_link' => 'Відправити посилання для відновлення пароля',
];

View File

@ -1,19 +0,0 @@
<?php
return [
'main_navigation' => 'ГОЛОВНЕ МЕНЮ',
'blog' => 'Блог',
'pages' => 'Сторінки',
'account_settings' => 'НАЛАШТУВАННЯ ПРОФІЛЮ',
'profile' => 'Профіль',
'change_password' => 'Змінити пароль',
'multilevel' => 'Багаторівневе меню',
'level_one' => 'Рівень 1',
'level_two' => 'Рівень 2',
'level_three' => 'Рівень 3',
'labels' => 'Мітки',
'important' => 'Важливо',
'warning' => 'Увага',
'information' => 'Інформація',
];

View File

@ -1,22 +0,0 @@
<?php
return [
'full_name' => 'Tên đầy đủ',
'email' => 'Email',
'password' => 'Mật khẩu',
'retype_password' => 'Nhập lại mật khẩu',
'remember_me' => 'Nhớ tôi',
'register' => 'Đăng ký',
'register_a_new_membership' => 'Đăng ký thành viên mới',
'i_forgot_my_password' => 'Tôi quên mật khẩu của tôi',
'i_already_have_a_membership' => 'Tôi đã là thành viên',
'sign_in' => 'Đăng nhập',
'log_out' => 'Đăng xuất',
'toggle_navigation' => 'Chuyển đổi điều hướng',
'login_message' => 'Đăng nhập để bắt đầu phiên của bạn',
'register_message' => 'Đăng ký thành viên mới',
'password_reset_message' => 'Đặt lại mật khẩu',
'reset_password' => 'Đặt lại mật khẩu',
'send_password_reset_link' => 'Gửi liên kết đặt lại mật khẩu',
];

View File

@ -1,19 +0,0 @@
<?php
return [
'main_navigation' => 'ĐIỀU HƯỚNG CHÍNH',
'blog' => 'Blog',
'pages' => 'Trang',
'account_settings' => 'CÀI ĐẶT TÀI KHOẢN',
'profile' => 'Hồ sơ',
'change_password' => 'Đổi mật khẩu',
'multilevel' => 'Đa cấp',
'level_one' => 'Cấp độ 1',
'level_two' => 'Cấp độ 2',
'level_three' => 'Cấp độ 3',
'labels' => 'NHÃN',
'Important' => 'Quan trọng',
'Warning' => 'Cảnh báo',
'Information' => 'Thông tin',
];

View File

@ -1,22 +0,0 @@
<?php
return [
'full_name' => '姓名',
'email' => '邮箱',
'password' => '密码',
'retype_password' => '重输密码',
'remember_me' => '记住我',
'register' => '注册',
'register_a_new_membership' => '注册新用户',
'i_forgot_my_password' => '忘记密码',
'i_already_have_a_membership' => '已经有账户',
'sign_in' => '登录',
'log_out' => '退出',
'toggle_navigation' => '切换导航',
'login_message' => '请先登录',
'register_message' => '注册新用户',
'password_reset_message' => '重置密码',
'reset_password' => '重置密码',
'send_password_reset_link' => '发送密码重置链接',
];

View File

@ -18,9 +18,9 @@
@csrf @csrf
<div class="form-group"> <div class="form-group">
<label for="name" class="sr-only">{{__('messages.2fa_sronly')}}</label> <label for="name" class="sr-only">{{__('messages.2fa_sronly')}}</label>
<input type="text" name="otp" id="name" class="form-control" placeholder="2FA Code (e.g. 543324)"> <input type="text" name="otp" id="name" class="form-control" placeholder="{{__('messages.profile.2fa_send_code_s')}}">
</div> </div>
<input name="register" id="register" class="btn btn-block login-btn mb-4" type="submit" value="Send 2FA Code"> <input name="register" id="register" class="btn btn-block login-btn mb-4" type="submit" value="{{__('messages.profile.2fa_send_code')}}">
</form> </form>
<p class="login-card-footer-text">{{__('messages.2fa_lostcode')}} <a href="{{ route('logout') }}" class="text-reset">{{__('messages.2fa_cancel_login')}}</a></p> <p class="login-card-footer-text">{{__('messages.2fa_lostcode')}} <a href="{{ route('logout') }}" class="text-reset">{{__('messages.2fa_cancel_login')}}</a></p>
<nav class="login-card-footer-nav"> <nav class="login-card-footer-nav">

View File

@ -12,7 +12,7 @@
<div class="card-body"> <div class="card-body">
<div class="brand-wrapper"> <div class="brand-wrapper">
<img src="{{ config('adminlte.logo_img') }}" alt="logo" class="logo">{{ config('adminlte.logo') }} <img src="{{ config('adminlte.logo_img') }}" alt="logo" class="logo">{{ config('adminlte.logo') }}
</div> </div> <!-- main content start -->
<p class="login-card-description">{{__('messages.register_acc')}}</p> <p class="login-card-description">{{__('messages.register_acc')}}</p>
<div class="alert alert-warning alert-dismissible"> <div class="alert alert-warning alert-dismissible">
<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>

View File

@ -1 +1,42 @@
@extends('adminlte::auth.verify') @extends('breadcrumbs.auth.main')
@section('authpage')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
<div class="card-body">
<div class="brand-wrapper">
<img src="{{ config('adminlte.logo_img') }}" alt="logo" class="logo">{{ config('adminlte.logo') }}
</div> <!-- main content start -->
<p class="login-card-description">{{__('adminlte::adminlte.verify_message')}}</p>
@if(session('resent'))
<div class="alert alert-success" role="alert">
{{ __('adminlte::adminlte.verify_email_sent') }}
</div>
@endif
{{ __('adminlte::adminlte.verify_check_your_email') }}
{{ __('adminlte::adminlte.verify_if_not_recieved') }},
<form class="d-inline" method="POST" action="{{ route('verification.resend') }}">
@csrf
<input name="resend" id="resend" class="btn btn-block login-btn mb-4" type="submit" value="{{ __('adminlte::adminlte.verify_request_another') }}">
</form>
<nav class="login-card-footer-nav">
<a href="#!">{{__('messages.terms')}}</a>
<a href="#!">{{__('messages.ppolicy')}}</a>
</nav>
</div>
</div>
</div>
</div>
</div>
@stop

View File

@ -17,7 +17,7 @@ Route::group(['prefix' => LaravelLocalization::setLocale(), 'middleware' => [ 'l
Route::group(['prefix' => 'auth', 'middleware' => ['usernameUUID']], function (){ Route::group(['prefix' => 'auth', 'middleware' => ['usernameUUID']], function (){
Auth::routes(); Auth::routes(['verify' => true]);
Route::post('/twofa/authenticate', 'Auth\TwofaController@verify2FA') Route::post('/twofa/authenticate', 'Auth\TwofaController@verify2FA')
->name('verify2FA'); ->name('verify2FA');
@ -31,7 +31,7 @@ Route::group(['prefix' => LaravelLocalization::setLocale(), 'middleware' => [ 'l
->name('sendSubmission'); ->name('sendSubmission');
Route::group(['middleware' => ['auth', 'forcelogout', '2fa']], function(){ Route::group(['middleware' => ['auth', 'forcelogout', '2fa', 'verified']], function(){
Route::get('/dashboard', 'DashboardController@index') Route::get('/dashboard', 'DashboardController@index')
->name('dashboard') ->name('dashboard')