forked from miguel456/rbrecruiter
Compare commits
57 Commits
l10n_maste
...
master
Author | SHA1 | Date |
---|---|---|
Miguel Nogueira | 85c719c24d | |
Miguel Nogueira | 5df3f965ef | |
Miguel Nogueira | 4eb115d165 | |
Miguel Nogueira | 0433ce7693 | |
Miguel Nogueira | 773ec570d9 | |
Miguel Nogueira | 53c23f3698 | |
Miguel Nogueira | f1db159eee | |
Miguel Nogueira | 0d14a65ee5 | |
Miguel Nogueira | 2942157603 | |
Miguel Nogueira | 11f3fb90d0 | |
Miguel Nogueira | 937a0206a5 | |
Miguel Nogueira | 3598a32ecf | |
Miguel Nogueira | ac8b303e2c | |
Miguel Nogueira | e93abd2ab7 | |
Miguel Nogueira | 20ab381076 | |
Miguel Nogueira | e566e40404 | |
Miguel Nogueira | b0a935b8b3 | |
Miguel Nogueira | 0dfb68dba2 | |
Miguel Nogueira | 24303052ad | |
Miguel Nogueira | 178bc31a6e | |
Miguel Nogueira | 98e557a840 | |
Miguel Nogueira | 95bf7c239e | |
Miguel Nogueira | 4d2595dd39 | |
Miguel Nogueira | 4e81a41210 | |
Miguel Nogueira | 1319ce6b86 | |
Miguel Nogueira | bea83b650c | |
Miguel Nogueira | 675cc3c329 | |
Miguel Nogueira | e8119b763c | |
Miguel Nogueira | 04838048ce | |
Miguel Nogueira | 87f8e63b24 | |
Miguel Nogueira | 7292aab4b7 | |
Miguel Nogueira | 9f3780d844 | |
Miguel Nogueira | e37b38f2d9 | |
Miguel Nogueira | c83e720a6d | |
Miguel Nogueira | 9241a83844 | |
Miguel Nogueira | c6685331a8 | |
Miguel Nogueira | 9da9b8e6fc | |
Miguel Nogueira | bb019f71e2 | |
Miguel Nogueira | 0cde3444ce | |
Miguel Nogueira | b61fb5642e | |
Miguel Nogueira | f7614916bf | |
Miguel Nogueira | 2ad1548cd6 | |
Miguel Nogueira | 43579c8fc9 | |
Miguel Nogueira | 0c9cea5c05 | |
Miguel Nogueira | 4371dd971c | |
Miguel Nogueira | c57ace1ad9 | |
Miguel Nogueira | c35b37d9b3 | |
Miguel Nogueira | f25c9f7bc7 | |
Miguel Nogueira | 25cebeefab | |
Miguel Nogueira | 8b47dbe2e0 | |
Miguel Nogueira | 290dbe99b6 | |
Miguel Nogueira | d7b506ec52 | |
Miguel Nogueira | d41d94b934 | |
Miguel Nogueira | b571d72eaf | |
Miguel Nogueira | 0c1f6f75eb | |
Miguel Nogueira | 5ea9e11a62 | |
Miguel Nogueira | fbd1e83306 |
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -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.
|
12
README.md
12
README.md
|
@ -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).
|
||||||
|
|
|
@ -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.
|
|
@ -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');
|
||||||
|
|
|
@ -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.'));
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
|
@ -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'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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');
|
||||||
}
|
}
|
||||||
|
|
|
@ -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'
|
||||||
],
|
],
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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%
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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' => 'إرسال رابط إعادة تعيين كلمة السر',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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.',
|
||||||
];
|
];
|
||||||
|
|
|
@ -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'
|
||||||
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -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.',
|
||||||
];
|
];
|
||||||
|
|
|
@ -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'
|
||||||
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -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' => 'ارسال لینک بازنشانی رمز عبور',
|
|
||||||
];
|
|
|
@ -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.',
|
||||||
];
|
];
|
||||||
|
|
|
@ -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'
|
||||||
|
|
||||||
|
|
||||||
|
];
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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' => 'ここをクリックしてもう一度送信する',
|
|
||||||
];
|
|
|
@ -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' => 'インフォメーション',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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.',
|
||||||
|
];
|
|
@ -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'
|
||||||
|
|
||||||
|
|
||||||
|
];
|
|
@ -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' => 'Отправить ссылку для восстановления пароля',
|
|
||||||
|
|
||||||
];
|
|
|
@ -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' => 'Информация',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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' => 'Відправити посилання для відновлення пароля',
|
|
||||||
|
|
||||||
];
|
|
|
@ -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' => 'Інформація',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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',
|
|
||||||
];
|
|
|
@ -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' => '发送密码重置链接',
|
|
||||||
];
|
|
|
@ -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">
|
||||||
|
|
|
@ -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">×</a>
|
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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')
|
||||||
|
|
Loading…
Reference in New Issue