Compare commits
17 Commits
Author | SHA1 | Date |
---|---|---|
Miguel Nogueira | 66147e0ba3 | |
Miguel Nogueira | ccd5d1df2b | |
Miguel Nogueira | 02b7905a97 | |
Miguel Nogueira | ac27c2e5ce | |
Miguel Nogueira | 2be0084463 | |
Miguel Nogueira | 34c830bc8d | |
Miguel Nogueira | abaf00e427 | |
Miguel Nogueira | 74e576d318 | |
Miguel Nogueira | 584d8e703a | |
Miguel Nogueira | 0230042c1a | |
Miguel Nogueira | 22f698bd1d | |
Miguel Nogueira | abfbd82e23 | |
Miguel Nogueira | a8648a9b50 | |
Miguel Nogueira | 5c57a5185f | |
Miguel Nogueira | 0e8b3d28a6 | |
Miguel Nogueira | 3c966036d9 | |
Miguel Nogueira | a5e1ab5af8 |
|
@ -21,6 +21,9 @@ 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"
|
||||||
|
|
||||||
|
@ -29,7 +32,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.6.1
|
RELEASE=staffmanagement@0.2.0
|
||||||
|
|
||||||
SLACK_INTEGRATION_WEBHOOK=
|
SLACK_INTEGRATION_WEBHOOK=
|
||||||
|
|
||||||
|
@ -65,8 +68,4 @@ 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
|
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
# 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
|
|
|
@ -1,29 +0,0 @@
|
||||||
# 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 @@
|
||||||
|
|
||||||
# RB Recruiter v 0.6.2 [![Crowdin](https://badges.crowdin.net/raspberry-staff-manager/localized.svg)](https://crowdin.com/project/raspberry-staff-manager)
|
# 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)
|
||||||
## The quick and pain-free form management solution for communities
|
## The quick and pain-free staff application manager
|
||||||
|
|
||||||
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,14 +48,6 @@ 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
19
SECURITY.md
|
@ -1,19 +0,0 @@
|
||||||
# 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,10 +17,6 @@ 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,16 +99,12 @@ 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 (ex. https://where.you.installed.theapp.com): ');
|
$settings['APP_URL'] = $this->ask('Application\'s URL');
|
||||||
$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, $user]);
|
$this->authorize('create', Ban::class);
|
||||||
|
|
||||||
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(5);
|
$expiryDate->addYears(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
$ban = Ban::create([
|
$ban = Ban::create([
|
||||||
'userID' => $user->id,
|
'userID' => $user->id,
|
||||||
'reason' => $reason,
|
'reason' => $reason,
|
||||||
'bannedUntil' => $expiryDate->format('Y-m-d H:i:s'),
|
'bannedUntil' => $expiryDate->toDateTimeString() ?? null,
|
||||||
'userAgent' => "Unknown",
|
'userAgent' => "Unknown",
|
||||||
'authorUserID' => Auth::user()->id
|
'authorUserID' => Auth::user()->id
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -7,7 +7,6 @@ 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
|
||||||
{
|
{
|
||||||
|
@ -30,33 +29,17 @@ 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
|
||||||
{
|
{
|
||||||
Log::debug('Going through option ' . $optionName);
|
if (Options::optionExists($option))
|
||||||
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|string',
|
'durationOperand' => 'nullable|integer',
|
||||||
'durationOperator' => 'nullable|string'
|
'durationOperator' => 'nullable|string'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
<?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(),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
<?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,7 +3,6 @@
|
||||||
namespace App\Observers;
|
namespace App\Observers;
|
||||||
|
|
||||||
use App\Application;
|
use App\Application;
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
|
|
||||||
class ApplicationObserver
|
class ApplicationObserver
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,19 +38,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, User $targetUser)
|
public function create(User $user)
|
||||||
{
|
{
|
||||||
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') && $user->isNot($targetUser);
|
return $user->hasRole('admin') && Auth::user()->isNot($user);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
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;
|
||||||
|
@ -34,9 +32,7 @@ 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,11 +2,7 @@
|
||||||
|
|
||||||
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;
|
||||||
|
@ -24,12 +20,6 @@ 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'
|
||||||
],
|
],
|
||||||
|
|
|
@ -13,7 +13,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'failed' => 'These credentials do not match our records.',
|
'failed' => 'Estas credenciales no coinciden con nuestros registros.',
|
||||||
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
|
'throttle' => 'Demasiados intentos de inicio de sesión. Por favor, inténtalo de nuevo en :seconds segundos.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -13,7 +13,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'previous' => '« Previous',
|
'previous' => '« Anterior',
|
||||||
'next' => 'Next »',
|
'next' => 'Siguiente »',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -13,10 +13,10 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'reset' => 'Your password has been reset!',
|
'reset' => '¡Tu contraseña ha sido restablecida!',
|
||||||
'sent' => 'We have emailed your password reset link!',
|
'sent' => '¡Hemos enviado por correo electrónico tu enlace de restablecimiento de contraseña!',
|
||||||
'throttled' => 'Please wait before retrying.',
|
'throttled' => 'Por favor, espere antes de reintentar.',
|
||||||
'token' => 'This password reset token is invalid.',
|
'token' => 'Este token de restablecimiento de contraseña no es válido.',
|
||||||
'user' => "We can't find a user with that email address.",
|
'user' => "No podemos encontrar un usuario con esa dirección de correo electrónico.",
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -13,110 +13,110 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'accepted' => 'The :attribute must be accepted.',
|
'accepted' => 'El campo :attribute debe ser aceptado.',
|
||||||
'active_url' => 'The :attribute is not a valid URL.',
|
'active_url' => ':attribute no es una URL válida.',
|
||||||
'after' => 'The :attribute must be a date after :date.',
|
'after' => ':attribute debe ser una fecha posterior a :date.',
|
||||||
'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
|
'after_or_equal' => ':attribute debe ser una fecha posterior o igual a :date.',
|
||||||
'alpha' => 'The :attribute may only contain letters.',
|
'alpha' => ':attribute sólo puede contener letras.',
|
||||||
'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.',
|
'alpha_dash' => ':attribute sólo puede contener letras, números, guiones y guiones bajos.',
|
||||||
'alpha_num' => 'The :attribute may only contain letters and numbers.',
|
'alpha_num' => ':attribute sólo puede contener letras y números.',
|
||||||
'array' => 'The :attribute must be an array.',
|
'array' => 'El campo :attribute debe ser un array.',
|
||||||
'before' => 'The :attribute must be a date before :date.',
|
'before' => ':attribute debe ser una fecha anterior a :date.',
|
||||||
'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
|
'before_or_equal' => ':attribute debe ser una fecha anterior o igual a :date.',
|
||||||
'between' => [
|
'between' => [
|
||||||
'numeric' => 'The :attribute must be between :min and :max.',
|
'numeric' => ':attribute debe estar entre :min y :max.',
|
||||||
'file' => 'The :attribute must be between :min and :max kilobytes.',
|
'file' => ':attribute debe estar entre :min y :max kilobytes.',
|
||||||
'string' => 'The :attribute must be between :min and :max characters.',
|
'string' => ':attribute debe tener entre :min y :max caracteres.',
|
||||||
'array' => 'The :attribute must have between :min and :max items.',
|
'array' => ':attribute debe tener entre :min y :max elementos.',
|
||||||
],
|
],
|
||||||
'boolean' => 'The :attribute field must be true or false.',
|
'boolean' => 'El campo :attribute debe ser verdadero o falso.',
|
||||||
'confirmed' => 'The :attribute confirmation does not match.',
|
'confirmed' => 'El :attribute de confirmación no coincide.',
|
||||||
'date' => 'The :attribute is not a valid date.',
|
'date' => ':attribute no es una fecha válida.',
|
||||||
'date_equals' => 'The :attribute must be a date equal to :date.',
|
'date_equals' => ':attribute debe ser una fecha igual a :date.',
|
||||||
'date_format' => 'The :attribute does not match the format :format.',
|
'date_format' => ':attribute no coincide con el formato :format.',
|
||||||
'different' => 'The :attribute and :other must be different.',
|
'different' => ':attribute y :other deben ser diferentes.',
|
||||||
'digits' => 'The :attribute must be :digits digits.',
|
'digits' => ':attribute debe tener :digits dígitos.',
|
||||||
'digits_between' => 'The :attribute must be between :min and :max digits.',
|
'digits_between' => ':attribute debe tener entre :min y :max dígitos.',
|
||||||
'dimensions' => 'The :attribute has invalid image dimensions.',
|
'dimensions' => 'El campo :attribute tiene dimensiones de imagen inválidas.',
|
||||||
'distinct' => 'The :attribute field has a duplicate value.',
|
'distinct' => 'El campo :attribute tiene un valor duplicado.',
|
||||||
'email' => 'The :attribute must be a valid email address.',
|
'email' => ':attribute debe ser una dirección de correo electrónico válida.',
|
||||||
'ends_with' => 'The :attribute must end with one of the following: :values.',
|
'ends_with' => 'El campo :attribute debe terminar con uno de los siguientes: :values.',
|
||||||
'exists' => 'The selected :attribute is invalid.',
|
'exists' => 'El :attribute seleccionado no es válido.',
|
||||||
'file' => 'The :attribute must be a file.',
|
'file' => ':attribute debe ser un archivo.',
|
||||||
'filled' => 'The :attribute field must have a value.',
|
'filled' => 'El campo :attribute debe tener un valor.',
|
||||||
'gt' => [
|
'gt' => [
|
||||||
'numeric' => 'The :attribute must be greater than :value.',
|
'numeric' => 'El campo :attribute debe ser mayor que :value.',
|
||||||
'file' => 'The :attribute must be greater than :value kilobytes.',
|
'file' => ':attribute debe ser mayor que :value kilobytes.',
|
||||||
'string' => 'The :attribute must be greater than :value characters.',
|
'string' => ':attribute debe ser mayor que :value caracteres.',
|
||||||
'array' => 'The :attribute must have more than :value items.',
|
'array' => 'El campo :attribute debe tener más de :value items.',
|
||||||
],
|
],
|
||||||
'gte' => [
|
'gte' => [
|
||||||
'numeric' => 'The :attribute must be greater than or equal :value.',
|
'numeric' => 'El campo :attribute debe ser mayor o igual a :value.',
|
||||||
'file' => 'The :attribute must be greater than or equal :value kilobytes.',
|
'file' => ':attribute debe ser mayor o igual a :value kilobytes.',
|
||||||
'string' => 'The :attribute must be greater than or equal :value characters.',
|
'string' => 'El campo :attribute debe ser mayor o igual a :value caracteres.',
|
||||||
'array' => 'The :attribute must have :value items or more.',
|
'array' => ':attribute debe tener :value o más.',
|
||||||
],
|
],
|
||||||
'image' => 'The :attribute must be an image.',
|
'image' => 'El campo :attribute debe ser una imagen.',
|
||||||
'in' => 'The selected :attribute is invalid.',
|
'in' => 'El :attribute seleccionado no es válido.',
|
||||||
'in_array' => 'The :attribute field does not exist in :other.',
|
'in_array' => 'El campo :attribute no existe en :other.',
|
||||||
'integer' => 'The :attribute must be an integer.',
|
'integer' => 'El campo :attribute debe ser un entero.',
|
||||||
'ip' => 'The :attribute must be a valid IP address.',
|
'ip' => ':attribute debe ser una dirección IP válida.',
|
||||||
'ipv4' => 'The :attribute must be a valid IPv4 address.',
|
'ipv4' => ':attribute debe ser una dirección IPv4 válida.',
|
||||||
'ipv6' => 'The :attribute must be a valid IPv6 address.',
|
'ipv6' => ':attribute debe ser una dirección IPv6 válida.',
|
||||||
'json' => 'The :attribute must be a valid JSON string.',
|
'json' => ':attribute debe ser una cadena JSON válida.',
|
||||||
'lt' => [
|
'lt' => [
|
||||||
'numeric' => 'The :attribute must be less than :value.',
|
'numeric' => 'El campo :attribute debe ser menor que :value.',
|
||||||
'file' => 'The :attribute must be less than :value kilobytes.',
|
'file' => ':attribute debe ser menor que :value kilobytes.',
|
||||||
'string' => 'The :attribute must be less than :value characters.',
|
'string' => ':attribute debe tener menos de :value caracteres.',
|
||||||
'array' => 'The :attribute must have less than :value items.',
|
'array' => ':attribute debe tener menos de :value elementos.',
|
||||||
],
|
],
|
||||||
'lte' => [
|
'lte' => [
|
||||||
'numeric' => 'The :attribute must be less than or equal :value.',
|
'numeric' => 'El campo :attribute debe ser menor o igual a :value.',
|
||||||
'file' => 'The :attribute must be less than or equal :value kilobytes.',
|
'file' => ':attribute debe ser menor o igual a :value kilobytes.',
|
||||||
'string' => 'The :attribute must be less than or equal :value characters.',
|
'string' => ':attribute debe ser menor o igual a :value caracteres.',
|
||||||
'array' => 'The :attribute must not have more than :value items.',
|
'array' => 'El campo :attribute no debe tener más de :value items.',
|
||||||
],
|
],
|
||||||
'max' => [
|
'max' => [
|
||||||
'numeric' => 'The :attribute may not be greater than :max.',
|
'numeric' => ':attribute no puede ser mayor que :max.',
|
||||||
'file' => 'The :attribute may not be greater than :max kilobytes.',
|
'file' => ':attribute no puede ser mayor que :max kilobytes.',
|
||||||
'string' => 'The :attribute may not be greater than :max characters.',
|
'string' => ':attribute no puede ser mayor que :max caracteres.',
|
||||||
'array' => 'The :attribute may not have more than :max items.',
|
'array' => ':attribute no puede tener más de :max elementos.',
|
||||||
],
|
],
|
||||||
'mimes' => 'The :attribute must be a file of type: :values.',
|
'mimes' => 'El campo :attribute debe ser un archivo de tipo: :values.',
|
||||||
'mimetypes' => 'The :attribute must be a file of type: :values.',
|
'mimetypes' => 'El campo :attribute debe ser un archivo de tipo: :values.',
|
||||||
'min' => [
|
'min' => [
|
||||||
'numeric' => 'The :attribute must be at least :min.',
|
'numeric' => ':attribute debe ser al menos :min.',
|
||||||
'file' => 'The :attribute must be at least :min kilobytes.',
|
'file' => ':attribute debe tener al menos :min kilobytes.',
|
||||||
'string' => 'The :attribute must be at least :min characters.',
|
'string' => ':attribute debe tener al menos :min caracteres.',
|
||||||
'array' => 'The :attribute must have at least :min items.',
|
'array' => ':attribute debe tener al menos :min items.',
|
||||||
],
|
],
|
||||||
'not_in' => 'The selected :attribute is invalid.',
|
'not_in' => 'El :attribute seleccionado no es válido.',
|
||||||
'not_regex' => 'The :attribute format is invalid.',
|
'not_regex' => 'El formato :attribute no es válido.',
|
||||||
'numeric' => 'The :attribute must be a number.',
|
'numeric' => ':attribute debe ser un número.',
|
||||||
'password' => 'The password is incorrect.',
|
'password' => 'La contraseña es incorrecta.',
|
||||||
'present' => 'The :attribute field must be present.',
|
'present' => 'El campo :attribute debe estar presente.',
|
||||||
'regex' => 'The :attribute format is invalid.',
|
'regex' => 'El formato :attribute no es válido.',
|
||||||
'required' => 'The :attribute field is required.',
|
'required' => 'El campo :attribute es obligatorio.',
|
||||||
'required_if' => 'The :attribute field is required when :other is :value.',
|
'required_if' => 'El campo :attribute es obligatorio cuando :other es :value.',
|
||||||
'required_unless' => 'The :attribute field is required unless :other is in :values.',
|
'required_unless' => 'El campo :attribute es obligatorio a menos que :other esté en :values.',
|
||||||
'required_with' => 'The :attribute field is required when :values is present.',
|
'required_with' => 'El campo :attribute es obligatorio cuando :values está presente.',
|
||||||
'required_with_all' => 'The :attribute field is required when :values are present.',
|
'required_with_all' => 'El campo :attribute es obligatorio cuando :values están presentes.',
|
||||||
'required_without' => 'The :attribute field is required when :values is not present.',
|
'required_without' => 'El campo :attribute es obligatorio cuando :values no está presente.',
|
||||||
'required_without_all' => 'The :attribute field is required when none of :values are present.',
|
'required_without_all' => 'El campo :attribute es obligatorio cuando ninguno de :values están presentes.',
|
||||||
'same' => 'The :attribute and :other must match.',
|
'same' => ':attribute y :other deben coincidir.',
|
||||||
'size' => [
|
'size' => [
|
||||||
'numeric' => 'The :attribute must be :size.',
|
'numeric' => 'El campo :attribute debe ser :size.',
|
||||||
'file' => 'The :attribute must be :size kilobytes.',
|
'file' => ':attribute debe ser :size kilobytes.',
|
||||||
'string' => 'The :attribute must be :size characters.',
|
'string' => 'El campo :attribute debe tener :size caracteres.',
|
||||||
'array' => 'The :attribute must contain :size items.',
|
'array' => 'El campo :attribute debe contener :size items.',
|
||||||
],
|
],
|
||||||
'starts_with' => 'The :attribute must start with one of the following: :values.',
|
'starts_with' => 'El campo :attribute debe comenzar con uno de los siguientes: :values.',
|
||||||
'string' => 'The :attribute must be a string.',
|
'string' => 'El campo :attribute debe ser una cadena.',
|
||||||
'timezone' => 'The :attribute must be a valid zone.',
|
'timezone' => ':attribute debe ser una zona válida.',
|
||||||
'unique' => 'The :attribute has already been taken.',
|
'unique' => 'El atributo :attribute ya está en uso.',
|
||||||
'uploaded' => 'The :attribute failed to upload.',
|
'uploaded' => 'El atributo :attribute no se pudo cargar.',
|
||||||
'url' => 'The :attribute format is invalid.',
|
'url' => 'El formato :attribute no es válido.',
|
||||||
'uuid' => 'The :attribute must be a valid UUID.',
|
'uuid' => ':attribute debe ser un UUID válido.',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
@ -131,7 +131,7 @@ return [
|
||||||
|
|
||||||
'custom' => [
|
'custom' => [
|
||||||
'attribute-name' => [
|
'attribute-name' => [
|
||||||
'rule-name' => 'custom-message',
|
'rule-name' => 'mensaje personalizado',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'failed' => 'These credentials do not match our records.',
|
'failed' => 'Ces identifiants ne correspondent pas à nos enregistrements.',
|
||||||
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
|
'throttle' => 'Trop de tentatives de connexion. Veuillez réessayer dans :seconds secondes.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -13,7 +13,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'previous' => '« Previous',
|
'previous' => '« Précédent',
|
||||||
'next' => 'Next »',
|
'next' => 'Suivant »',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -13,10 +13,10 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'reset' => 'Your password has been reset!',
|
'reset' => 'Votre mot de passe a été réinitialisé !',
|
||||||
'sent' => 'We have emailed your password reset link!',
|
'sent' => 'Nous avons envoyé un e-mail pour réinitialiser votre mot de passe!',
|
||||||
'throttled' => 'Please wait before retrying.',
|
'throttled' => 'Veuillez patienter avant de réessayer.',
|
||||||
'token' => 'This password reset token is invalid.',
|
'token' => 'Ce jeton de réinitialisation de mot de passe est invalide.',
|
||||||
'user' => "We can't find a user with that email address.",
|
'user' => "Nous ne pouvons pas trouver un utilisateur avec cette adresse e-mail.",
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -13,110 +13,110 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'accepted' => 'The :attribute must be accepted.',
|
'accepted' => 'L\'attribut :attribute doit être accepté.',
|
||||||
'active_url' => 'The :attribute is not a valid URL.',
|
'active_url' => 'Le champ :attribute n\'est pas une URL valide.',
|
||||||
'after' => 'The :attribute must be a date after :date.',
|
'after' => 'Le champ :attribute doit être une date après :date.',
|
||||||
'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
|
'after_or_equal' => 'Le champ :attribute doit être une date postérieure ou égale à :date.',
|
||||||
'alpha' => 'The :attribute may only contain letters.',
|
'alpha' => 'Le champ :attribute ne peut contenir que des lettres.',
|
||||||
'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.',
|
'alpha_dash' => ':attribute ne peut contenir que des lettres, des chiffres, des tirets et des tirets bas.',
|
||||||
'alpha_num' => 'The :attribute may only contain letters and numbers.',
|
'alpha_num' => 'Le champ :attribute ne peut contenir que des lettres et des chiffres.',
|
||||||
'array' => 'The :attribute must be an array.',
|
'array' => ':attribute doit être un tableau.',
|
||||||
'before' => 'The :attribute must be a date before :date.',
|
'before' => 'Le champ :attribute doit être une date avant :date.',
|
||||||
'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
|
'before_or_equal' => ':attribute doit être une date antérieure ou égale à :date.',
|
||||||
'between' => [
|
'between' => [
|
||||||
'numeric' => 'The :attribute must be between :min and :max.',
|
'numeric' => 'Le champ :attribute doit être entre :min et :max.',
|
||||||
'file' => 'The :attribute must be between :min and :max kilobytes.',
|
'file' => 'Le champ :attribute doit être compris entre :min et :max kilo-octets.',
|
||||||
'string' => 'The :attribute must be between :min and :max characters.',
|
'string' => 'Le champ :attribute doit contenir entre :min et :max caractères.',
|
||||||
'array' => 'The :attribute must have between :min and :max items.',
|
'array' => 'Le champ :attribute doit avoir entre :min et :max éléments.',
|
||||||
],
|
],
|
||||||
'boolean' => 'The :attribute field must be true or false.',
|
'boolean' => 'Le champ :attribute doit être vrai ou faux.',
|
||||||
'confirmed' => 'The :attribute confirmation does not match.',
|
'confirmed' => 'La confirmation de l\'attribut :attribute ne correspond pas.',
|
||||||
'date' => 'The :attribute is not a valid date.',
|
'date' => 'Le champ :attribute n\'est pas une date valide.',
|
||||||
'date_equals' => 'The :attribute must be a date equal to :date.',
|
'date_equals' => 'Le champ :attribute doit être une date égale à :date.',
|
||||||
'date_format' => 'The :attribute does not match the format :format.',
|
'date_format' => 'Le champ :attribute ne correspond pas au format :format.',
|
||||||
'different' => 'The :attribute and :other must be different.',
|
'different' => ':attribute et :other doivent être différents.',
|
||||||
'digits' => 'The :attribute must be :digits digits.',
|
'digits' => ':attribute doit être de :digits chiffres.',
|
||||||
'digits_between' => 'The :attribute must be between :min and :max digits.',
|
'digits_between' => 'Le champ :attribute doit contenir entre :min et :max chiffres.',
|
||||||
'dimensions' => 'The :attribute has invalid image dimensions.',
|
'dimensions' => ':attribute a des dimensions d\'image non valides.',
|
||||||
'distinct' => 'The :attribute field has a duplicate value.',
|
'distinct' => 'Le champ :attribute a une valeur en double.',
|
||||||
'email' => 'The :attribute must be a valid email address.',
|
'email' => 'Le champ :attribute doit être une adresse e-mail valide.',
|
||||||
'ends_with' => 'The :attribute must end with one of the following: :values.',
|
'ends_with' => ':attribute doit se terminer par un des :values suivantes.',
|
||||||
'exists' => 'The selected :attribute is invalid.',
|
'exists' => 'Le champ :attribute sélectionné est invalide.',
|
||||||
'file' => 'The :attribute must be a file.',
|
'file' => 'Le champ :attribute doit être un fichier.',
|
||||||
'filled' => 'The :attribute field must have a value.',
|
'filled' => 'Le champ :attribute doit avoir une valeur.',
|
||||||
'gt' => [
|
'gt' => [
|
||||||
'numeric' => 'The :attribute must be greater than :value.',
|
'numeric' => 'Le champ :attribute doit être supérieur à :value.',
|
||||||
'file' => 'The :attribute must be greater than :value kilobytes.',
|
'file' => ':attribute doit être plus grand que :value kilo-octets.',
|
||||||
'string' => 'The :attribute must be greater than :value characters.',
|
'string' => 'Le champ :attribute doit être plus grand que :value caractères.',
|
||||||
'array' => 'The :attribute must have more than :value items.',
|
'array' => 'Le champ :attribute doit avoir plus de :value éléments.',
|
||||||
],
|
],
|
||||||
'gte' => [
|
'gte' => [
|
||||||
'numeric' => 'The :attribute must be greater than or equal :value.',
|
'numeric' => 'Le champ :attribute doit être supérieur ou égal à :value.',
|
||||||
'file' => 'The :attribute must be greater than or equal :value kilobytes.',
|
'file' => ':attribute doit être supérieur ou égal à :value kilo-octets.',
|
||||||
'string' => 'The :attribute must be greater than or equal :value characters.',
|
'string' => 'Le champ :attribute doit être supérieur ou égal à :value caractères.',
|
||||||
'array' => 'The :attribute must have :value items or more.',
|
'array' => 'L\'attribut :attribute doit avoir :value éléments ou plus.',
|
||||||
],
|
],
|
||||||
'image' => 'The :attribute must be an image.',
|
'image' => 'Le champ :attribute doit être une image.',
|
||||||
'in' => 'The selected :attribute is invalid.',
|
'in' => 'Le champ :attribute sélectionné est invalide.',
|
||||||
'in_array' => 'The :attribute field does not exist in :other.',
|
'in_array' => 'Le champ :attribute n\'existe pas dans :other.',
|
||||||
'integer' => 'The :attribute must be an integer.',
|
'integer' => ':attribute doit être un nombre entier.',
|
||||||
'ip' => 'The :attribute must be a valid IP address.',
|
'ip' => 'Le champ :attribute doit être une adresse IP valide.',
|
||||||
'ipv4' => 'The :attribute must be a valid IPv4 address.',
|
'ipv4' => 'Le champ :attribute doit être une adresse IPv4 valide.',
|
||||||
'ipv6' => 'The :attribute must be a valid IPv6 address.',
|
'ipv6' => 'Le champ :attribute doit être une adresse IPv6 valide.',
|
||||||
'json' => 'The :attribute must be a valid JSON string.',
|
'json' => 'Le champ :attribute doit être une chaîne JSON valide.',
|
||||||
'lt' => [
|
'lt' => [
|
||||||
'numeric' => 'The :attribute must be less than :value.',
|
'numeric' => 'Le champ :attribute doit être inférieur à :value.',
|
||||||
'file' => 'The :attribute must be less than :value kilobytes.',
|
'file' => ':attribute doit être inférieur à :value kilo-octets.',
|
||||||
'string' => 'The :attribute must be less than :value characters.',
|
'string' => 'Le champ :attribute doit être inférieur à :value caractères.',
|
||||||
'array' => 'The :attribute must have less than :value items.',
|
'array' => 'Le champ :attribute doit avoir moins de :value éléments.',
|
||||||
],
|
],
|
||||||
'lte' => [
|
'lte' => [
|
||||||
'numeric' => 'The :attribute must be less than or equal :value.',
|
'numeric' => 'Le champ :attribute doit être inférieur ou égal à :value.',
|
||||||
'file' => 'The :attribute must be less than or equal :value kilobytes.',
|
'file' => ':attribute doit être inférieur ou égal à :value kilo-octets.',
|
||||||
'string' => 'The :attribute must be less than or equal :value characters.',
|
'string' => 'Le champ :attribute doit être inférieur ou égal à :value caractères.',
|
||||||
'array' => 'The :attribute must not have more than :value items.',
|
'array' => 'Le champ :attribute ne doit pas avoir plus de :value éléments.',
|
||||||
],
|
],
|
||||||
'max' => [
|
'max' => [
|
||||||
'numeric' => 'The :attribute may not be greater than :max.',
|
'numeric' => 'Le champ :attribute ne peut pas être plus grand que :max.',
|
||||||
'file' => 'The :attribute may not be greater than :max kilobytes.',
|
'file' => ':attribute ne doit pas être plus grand que :max kilo-octets.',
|
||||||
'string' => 'The :attribute may not be greater than :max characters.',
|
'string' => 'Le champ :attribute ne doit pas être plus grand que :max caractères.',
|
||||||
'array' => 'The :attribute may not have more than :max items.',
|
'array' => ':attribute ne peut pas avoir plus de :max éléments.',
|
||||||
],
|
],
|
||||||
'mimes' => 'The :attribute must be a file of type: :values.',
|
'mimes' => ':attribute doit être un fichier de type: :values.',
|
||||||
'mimetypes' => 'The :attribute must be a file of type: :values.',
|
'mimetypes' => ':attribute doit être un fichier de type: :values.',
|
||||||
'min' => [
|
'min' => [
|
||||||
'numeric' => 'The :attribute must be at least :min.',
|
'numeric' => 'Le champ :attribute doit être d\'au moins :min.',
|
||||||
'file' => 'The :attribute must be at least :min kilobytes.',
|
'file' => 'Le champ :attribute doit être d\'au moins :min kilo-octets.',
|
||||||
'string' => 'The :attribute must be at least :min characters.',
|
'string' => 'Le champ :attribute doit contenir au moins :min caractères.',
|
||||||
'array' => 'The :attribute must have at least :min items.',
|
'array' => 'Le champ :attribute doit avoir au moins :min éléments.',
|
||||||
],
|
],
|
||||||
'not_in' => 'The selected :attribute is invalid.',
|
'not_in' => 'Le champ :attribute sélectionné est invalide.',
|
||||||
'not_regex' => 'The :attribute format is invalid.',
|
'not_regex' => 'Le format de l\'attribut :attribute est invalide.',
|
||||||
'numeric' => 'The :attribute must be a number.',
|
'numeric' => 'Le champ :attribute doit être un nombre.',
|
||||||
'password' => 'The password is incorrect.',
|
'password' => 'Le mot de passe est incorrect.',
|
||||||
'present' => 'The :attribute field must be present.',
|
'present' => 'Le champ :attribute doit être présent.',
|
||||||
'regex' => 'The :attribute format is invalid.',
|
'regex' => 'Le format de l\'attribut :attribute est invalide.',
|
||||||
'required' => 'The :attribute field is required.',
|
'required' => 'Le champ :attribute est requis.',
|
||||||
'required_if' => 'The :attribute field is required when :other is :value.',
|
'required_if' => 'Le champ :attribute est requis lorsque :other est :value.',
|
||||||
'required_unless' => 'The :attribute field is required unless :other is in :values.',
|
'required_unless' => 'Le champ :attribute est requis sauf si :other est en :values.',
|
||||||
'required_with' => 'The :attribute field is required when :values is present.',
|
'required_with' => 'Le champ :attribute est requis lorsque :values est présent.',
|
||||||
'required_with_all' => 'The :attribute field is required when :values are present.',
|
'required_with_all' => 'Le champ :attribute est requis lorsque :values sont présentes.',
|
||||||
'required_without' => 'The :attribute field is required when :values is not present.',
|
'required_without' => 'Le champ :attribute est requis lorsque :values n\'est pas présent.',
|
||||||
'required_without_all' => 'The :attribute field is required when none of :values are present.',
|
'required_without_all' => 'Le champ :attribute est requis quand aucun des :values n\'est présent.',
|
||||||
'same' => 'The :attribute and :other must match.',
|
'same' => ':attribute et :other doivent correspondre.',
|
||||||
'size' => [
|
'size' => [
|
||||||
'numeric' => 'The :attribute must be :size.',
|
'numeric' => 'Le champ :attribute doit être :size.',
|
||||||
'file' => 'The :attribute must be :size kilobytes.',
|
'file' => ':attribute doit être de :size kilo-octets.',
|
||||||
'string' => 'The :attribute must be :size characters.',
|
'string' => 'Le champ :attribute doit être de :size caractères.',
|
||||||
'array' => 'The :attribute must contain :size items.',
|
'array' => ':attribute doit contenir :size éléments.',
|
||||||
],
|
],
|
||||||
'starts_with' => 'The :attribute must start with one of the following: :values.',
|
'starts_with' => ':attribute doit commencer par l\'un des :values suivants.',
|
||||||
'string' => 'The :attribute must be a string.',
|
'string' => 'Le champ :attribute doit être une chaîne.',
|
||||||
'timezone' => 'The :attribute must be a valid zone.',
|
'timezone' => 'Le champ :attribute doit être une zone valide.',
|
||||||
'unique' => 'The :attribute has already been taken.',
|
'unique' => 'Le champ :attribute a déjà été pris.',
|
||||||
'uploaded' => 'The :attribute failed to upload.',
|
'uploaded' => 'L\'attribut :attribute n\'a pas pu être envoyé.',
|
||||||
'url' => 'The :attribute format is invalid.',
|
'url' => 'Le format de l\'attribut :attribute est invalide.',
|
||||||
'uuid' => 'The :attribute must be a valid UUID.',
|
'uuid' => ':attribute doit être un UUID valide.',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
@ -131,7 +131,7 @@ return [
|
||||||
|
|
||||||
'custom' => [
|
'custom' => [
|
||||||
'attribute-name' => [
|
'attribute-name' => [
|
||||||
'rule-name' => 'custom-message',
|
'rule-name' => 'message personnalisé',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -2,27 +2,27 @@
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'full_name' => 'Full name',
|
'full_name' => 'Nombre completo',
|
||||||
'email' => 'Email',
|
'email' => 'E-mail',
|
||||||
'password' => 'Password',
|
'password' => 'Contraseña',
|
||||||
'retype_password' => 'Retype password',
|
'retype_password' => 'Repetir contraseña',
|
||||||
'remember_me' => 'Remember Me',
|
'remember_me' => 'Recordarme',
|
||||||
'register' => 'Register',
|
'register' => 'Registrarse',
|
||||||
'register_a_new_membership' => 'Register a new membership',
|
'register_a_new_membership' => 'Registrar una nueva membresía',
|
||||||
'i_forgot_my_password' => 'I forgot my password',
|
'i_forgot_my_password' => 'Olvidé mi contraseña',
|
||||||
'i_already_have_a_membership' => 'I already have a membership',
|
'i_already_have_a_membership' => 'Ya tengo una membresía',
|
||||||
'sign_in' => 'Sign In',
|
'sign_in' => 'Iniciar sesión',
|
||||||
'log_out' => 'Log Out',
|
'log_out' => 'Cerrar sesión',
|
||||||
'toggle_navigation' => 'Toggle navigation',
|
'toggle_navigation' => 'Cambiar navegación',
|
||||||
'login_message' => 'Sign in to start your session',
|
'login_message' => 'Inicia sesión para iniciar tu sesión',
|
||||||
'register_message' => 'Register a new membership',
|
'register_message' => 'Registrar una nueva membresía',
|
||||||
'password_reset_message' => 'Reset Password',
|
'password_reset_message' => 'Restablecer contraseña',
|
||||||
'reset_password' => 'Reset Password',
|
'reset_password' => 'Restablecer contraseña',
|
||||||
'send_password_reset_link' => 'Send Password Reset Link',
|
'send_password_reset_link' => 'Enviar enlace de restablecimiento de contraseña',
|
||||||
'verify_message' => 'Your account needs verification',
|
'verify_message' => 'Tu cuenta necesita verificación',
|
||||||
'verify_email_sent' => 'A fresh verification link has been sent to your email address.',
|
'verify_email_sent' => 'Se ha enviado un nuevo enlace de verificación a tu dirección de correo electrónico.',
|
||||||
'verify_check_your_email' => 'Before proceeding, please check your email for a verification link.',
|
'verify_check_your_email' => 'Antes de proceder, por favor revisa tu correo electrónico para ver un enlace de verificación.',
|
||||||
'verify_if_not_recieved' => 'If you did not receive the email',
|
'verify_if_not_recieved' => 'Si no recibiste el correo electrónico',
|
||||||
'verify_request_another' => 'click here to request another',
|
'verify_request_another' => 'haz clic aquí para solicitar otro',
|
||||||
'confirm_password_message' => 'Please, confirm your password to continue.',
|
'confirm_password_message' => 'Por favor, confirma tu contraseña para continuar.',
|
||||||
];
|
];
|
||||||
|
|
|
@ -2,31 +2,31 @@
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'm_home' => 'Home',
|
'm_home' => 'Inicio',
|
||||||
'm_directory' => 'Directory',
|
'm_directory' => 'Directorio',
|
||||||
'h_applications' => 'Applications',
|
'h_applications' => 'Aplicaciones',
|
||||||
'm_my_applications' => 'My Applications',
|
'm_my_applications' => 'Mis Aplicaciones',
|
||||||
'm_curr_applications' => 'Current Applications',
|
'm_curr_applications' => 'Aplicaciones actuales',
|
||||||
'h_my_profile' => 'My Profile',
|
'h_my_profile' => 'Mi perfil',
|
||||||
'm_profile_settings' => 'Profile Settings',
|
'm_profile_settings' => 'Ajustes del perfil',
|
||||||
'm_account_settings' => 'My Account Settings',
|
'm_account_settings' => 'Ajustes de mi cuenta',
|
||||||
'h_app_management' => 'Application Management',
|
'h_app_management' => 'Gestión de aplicaciones',
|
||||||
'm_all_apps' => 'All Applications',
|
'm_all_apps' => 'Todas las aplicaciones',
|
||||||
'm_outstanding_apps' => 'Outstanding Applications',
|
'm_outstanding_apps' => 'Aplicaciones pendientes',
|
||||||
'm_interview_queue' => 'Interview Queue',
|
'm_interview_queue' => 'Cola de entrevistas',
|
||||||
'm_peer_approval' => 'Peer Approval Queue',
|
'm_peer_approval' => 'Cola de aprobación por pares',
|
||||||
'h_admin' => 'Administration',
|
'h_admin' => 'Administración',
|
||||||
'm_staff_m' => 'Staff Members',
|
'm_staff_m' => 'Miembros del personal',
|
||||||
'm_reg_players' => 'Registered Players',
|
'm_reg_players' => 'Jugadores registrados',
|
||||||
'sm_hiring_man' => 'Hiring Management',
|
'sm_hiring_man' => 'Gestión de contratación',
|
||||||
'm_open_pos' => 'Open Positions',
|
'm_open_pos' => 'Abrir posiciones',
|
||||||
'sm_forms' => 'Forms',
|
'sm_forms' => 'Formularios',
|
||||||
'sm_all_forms' => 'All Forms',
|
'sm_all_forms' => 'Todos los formularios',
|
||||||
'm_form_builder' => 'Form Builder',
|
'm_form_builder' => 'Constructor de Formularios',
|
||||||
'sm_app_settings' => 'App Settings',
|
'sm_app_settings' => 'Ajustes de app',
|
||||||
'm_global_app_s' => 'Global App Settings',
|
'm_global_app_s' => 'Configuración global de la aplicación',
|
||||||
'm_devtools' => 'Developer Tools',
|
'm_devtools' => 'Herramientas para desarrolladores',
|
||||||
'm_s_logs' => 'System Logs'
|
'm_s_logs' => 'Registros del sistema'
|
||||||
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -2,27 +2,27 @@
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'full_name' => 'Full name',
|
'full_name' => 'Nom complet',
|
||||||
'email' => 'Email',
|
'email' => 'Courriel',
|
||||||
'password' => 'Password',
|
'password' => 'Mot de passe',
|
||||||
'retype_password' => 'Retype password',
|
'retype_password' => 'Retapez le mot de passe',
|
||||||
'remember_me' => 'Remember Me',
|
'remember_me' => 'Se souvenir de moi',
|
||||||
'register' => 'Register',
|
'register' => 'Inscription',
|
||||||
'register_a_new_membership' => 'Register a new membership',
|
'register_a_new_membership' => 'Inscrire une nouvelle adhésion',
|
||||||
'i_forgot_my_password' => 'I forgot my password',
|
'i_forgot_my_password' => 'J\'ai oublié mon mot de passe',
|
||||||
'i_already_have_a_membership' => 'I already have a membership',
|
'i_already_have_a_membership' => 'J\'ai déjà une adhésion',
|
||||||
'sign_in' => 'Sign In',
|
'sign_in' => 'Se connecter',
|
||||||
'log_out' => 'Log Out',
|
'log_out' => 'Déconnexion',
|
||||||
'toggle_navigation' => 'Toggle navigation',
|
'toggle_navigation' => 'Basculer la navigation',
|
||||||
'login_message' => 'Sign in to start your session',
|
'login_message' => 'Connectez-vous pour démarrer votre session',
|
||||||
'register_message' => 'Register a new membership',
|
'register_message' => 'Inscrire une nouvelle adhésion',
|
||||||
'password_reset_message' => 'Reset Password',
|
'password_reset_message' => 'Réinitialiser le mot de passe',
|
||||||
'reset_password' => 'Reset Password',
|
'reset_password' => 'Réinitialiser le mot de passe',
|
||||||
'send_password_reset_link' => 'Send Password Reset Link',
|
'send_password_reset_link' => 'Envoyer le lien de réinitialisation du mot de passe',
|
||||||
'verify_message' => 'Your account needs verification',
|
'verify_message' => 'Votre compte a besoin d\'une vérification',
|
||||||
'verify_email_sent' => 'A fresh verification link has been sent to your email address.',
|
'verify_email_sent' => 'Un nouveau lien de vérification a été envoyé à votre adresse e-mail.',
|
||||||
'verify_check_your_email' => 'Before proceeding, please check your email for a verification link.',
|
'verify_check_your_email' => 'Avant de continuer, veuillez vérifier votre e-mail pour un lien de vérification.',
|
||||||
'verify_if_not_recieved' => 'If you did not receive the email',
|
'verify_if_not_recieved' => 'Si vous n\'avez pas reçu l\'e-mail',
|
||||||
'verify_request_another' => 'click here to request another',
|
'verify_request_another' => 'cliquez ici pour en demander un autre',
|
||||||
'confirm_password_message' => 'Please, confirm your password to continue.',
|
'confirm_password_message' => 'Veuillez confirmer votre mot de passe pour continuer.',
|
||||||
];
|
];
|
||||||
|
|
|
@ -2,31 +2,31 @@
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'm_home' => 'Home',
|
'm_home' => 'Domicile',
|
||||||
'm_directory' => 'Directory',
|
'm_directory' => 'Répertoire',
|
||||||
'h_applications' => 'Applications',
|
'h_applications' => 'Applications',
|
||||||
'm_my_applications' => 'My Applications',
|
'm_my_applications' => 'Mes applications',
|
||||||
'm_curr_applications' => 'Current Applications',
|
'm_curr_applications' => 'Applications actuelles',
|
||||||
'h_my_profile' => 'My Profile',
|
'h_my_profile' => 'Mon profil',
|
||||||
'm_profile_settings' => 'Profile Settings',
|
'm_profile_settings' => 'Paramètres du profil',
|
||||||
'm_account_settings' => 'My Account Settings',
|
'm_account_settings' => 'Paramètres de mon compte',
|
||||||
'h_app_management' => 'Application Management',
|
'h_app_management' => 'Gestion des applications',
|
||||||
'm_all_apps' => 'All Applications',
|
'm_all_apps' => 'Toutes les applications',
|
||||||
'm_outstanding_apps' => 'Outstanding Applications',
|
'm_outstanding_apps' => 'Applications en cours',
|
||||||
'm_interview_queue' => 'Interview Queue',
|
'm_interview_queue' => 'File d\'attente des entretiens',
|
||||||
'm_peer_approval' => 'Peer Approval Queue',
|
'm_peer_approval' => 'File d\'attente d\'approbation par les pairs',
|
||||||
'h_admin' => 'Administration',
|
'h_admin' => 'Administration',
|
||||||
'm_staff_m' => 'Staff Members',
|
'm_staff_m' => 'Membres du personnel',
|
||||||
'm_reg_players' => 'Registered Players',
|
'm_reg_players' => 'Joueurs enregistrés',
|
||||||
'sm_hiring_man' => 'Hiring Management',
|
'sm_hiring_man' => 'Gestion de l\'embauche',
|
||||||
'm_open_pos' => 'Open Positions',
|
'm_open_pos' => 'Positions ouvertes',
|
||||||
'sm_forms' => 'Forms',
|
'sm_forms' => 'Formulaires',
|
||||||
'sm_all_forms' => 'All Forms',
|
'sm_all_forms' => 'Tous les formulaires',
|
||||||
'm_form_builder' => 'Form Builder',
|
'm_form_builder' => 'Constructeur de formulaire',
|
||||||
'sm_app_settings' => 'App Settings',
|
'sm_app_settings' => 'Paramètres de l\'application',
|
||||||
'm_global_app_s' => 'Global App Settings',
|
'm_global_app_s' => 'Paramètres globaux de l\'application',
|
||||||
'm_devtools' => 'Developer Tools',
|
'm_devtools' => 'Outils de développement',
|
||||||
'm_s_logs' => 'System Logs'
|
'm_s_logs' => 'Journaux système'
|
||||||
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
Loading…
Reference in New Issue