forked from miguel456/rbrecruiter
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
85c719c24d | |||
5df3f965ef | |||
4eb115d165 | |||
0433ce7693 | |||
773ec570d9 | |||
53c23f3698 |
0
.editorconfig
Executable file → Normal file
0
.editorconfig
Executable file → Normal file
4
.env.example
Executable file → Normal file
4
.env.example
Executable file → Normal file
@ -7,10 +7,6 @@ APP_LOGO="https://www.raspberrypi.org/app/uploads/2020/05/Raspberry-Pi-OS-downlo
|
|||||||
APP_SITEHOMEPAGE=""
|
APP_SITEHOMEPAGE=""
|
||||||
# This can be your main homepage, other than this site itself
|
# This can be your main homepage, other than this site itself
|
||||||
|
|
||||||
# Forces ssl connections even if the environment is set to "local".
|
|
||||||
# Void if env is production.
|
|
||||||
NONPROD_FORCE_SECURE=false
|
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
LOG_CHANNEL=stack
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
DB_CONNECTION=mysql
|
||||||
|
0
.gitattributes
vendored
Executable file → Normal file
0
.gitattributes
vendored
Executable file → Normal file
0
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Executable file → Normal file
0
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Executable file → Normal file
0
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Executable file → Normal file
0
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Executable file → Normal file
0
.gitignore
vendored
Executable file → Normal file
0
.gitignore
vendored
Executable file → Normal file
14
.idea/hrm-mcserver.iml
Executable file → Normal file
14
.idea/hrm-mcserver.iml
Executable file → Normal file
@ -2,16 +2,12 @@
|
|||||||
<module type="WEB_MODULE" version="4">
|
<module type="WEB_MODULE" version="4">
|
||||||
<component name="NewModuleRootManager">
|
<component name="NewModuleRootManager">
|
||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<sourceFolder url="file://$MODULE_DIR$/database/factories" isTestSource="false" packagePrefix="Database\Factories\" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
|
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/database/seeders" isTestSource="false" packagePrefix="Database\Seeders\" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" packagePrefix="App\" />
|
<sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" packagePrefix="App\" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/almasaeed2010/adminlte" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/almasaeed2010/adminlte" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/asm89/stack-cors" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/asm89/stack-cors" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/awssat/discord-notification-channel" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/barryvdh/laravel-debugbar" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/barryvdh/laravel-debugbar" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/berkayk/onesignal-laravel" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/brick/math" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/brick/math" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/clue/stream-filter" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/clue/stream-filter" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
|
||||||
@ -31,7 +27,6 @@
|
|||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/filp/whoops" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/filp/whoops" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/fruitcake/laravel-cors" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/fruitcake/laravel-cors" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/fzaninotto/faker" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/fzaninotto/faker" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/graham-campbell/result-type" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
|
||||||
@ -49,7 +44,6 @@
|
|||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/mcamara/laravel-localization" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/mcamara/laravel-localization" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/mockery/mockery" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/mockery/mockery" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/monolog/monolog" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/monolog/monolog" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/mpociot/teamwork" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/nesbot/carbon" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/nesbot/carbon" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
|
||||||
@ -72,7 +66,6 @@
|
|||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-invoker" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
|
||||||
@ -89,16 +82,12 @@
|
|||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/ramsey/collection" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/ramsey/collection" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/ramsey/uuid" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/ramsey/uuid" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/scrivo/highlight.php" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/scrivo/highlight.php" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/cli-parser" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/complexity" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/lines-of-code" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-reflector" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-reflector" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
|
||||||
@ -117,8 +106,6 @@
|
|||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher-contracts" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher-contracts" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/finder" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/finder" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-client" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-client-contracts" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-kernel" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-kernel" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/mime" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/mime" />
|
||||||
@ -134,7 +121,6 @@
|
|||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php80" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php80" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-uuid" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-uuid" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/process" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/process" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/psr-http-message-bridge" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/routing" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/routing" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/service-contracts" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/service-contracts" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/string" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/string" />
|
||||||
|
0
.idea/laravel-plugin.xml
Executable file → Normal file
0
.idea/laravel-plugin.xml
Executable file → Normal file
0
.idea/misc.xml
Executable file → Normal file
0
.idea/misc.xml
Executable file → Normal file
0
.idea/modules.xml
Executable file → Normal file
0
.idea/modules.xml
Executable file → Normal file
14
.idea/php.xml
Executable file → Normal file
14
.idea/php.xml
Executable file → Normal file
@ -141,21 +141,9 @@
|
|||||||
<path value="$PROJECT_DIR$/vendor/graham-campbell/markdown" />
|
<path value="$PROJECT_DIR$/vendor/graham-campbell/markdown" />
|
||||||
<path value="$PROJECT_DIR$/vendor/league/mime-type-detection" />
|
<path value="$PROJECT_DIR$/vendor/league/mime-type-detection" />
|
||||||
<path value="$PROJECT_DIR$/vendor/mcamara/laravel-localization" />
|
<path value="$PROJECT_DIR$/vendor/mcamara/laravel-localization" />
|
||||||
<path value="$PROJECT_DIR$/vendor/mpociot/teamwork" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/sebastian/cli-parser" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/sebastian/complexity" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/sebastian/lines-of-code" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/graham-campbell/result-type" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/http-client" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/http-client-contracts" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/phpunit/php-invoker" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/awssat/discord-notification-channel" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/berkayk/onesignal-laravel" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/psr-http-message-bridge" />
|
|
||||||
</include_path>
|
</include_path>
|
||||||
</component>
|
</component>
|
||||||
<component name="PhpProjectSharedConfiguration" php_language_level="7.3" />
|
<component name="PhpProjectSharedConfiguration" php_language_level="7.2" />
|
||||||
<component name="PhpUnit">
|
<component name="PhpUnit">
|
||||||
<phpunit_settings>
|
<phpunit_settings>
|
||||||
<PhpUnitSettings configuration_file_path="$PROJECT_DIR$/phpunit.xml" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" use_configuration_file="true" />
|
<PhpUnitSettings configuration_file_path="$PROJECT_DIR$/phpunit.xml" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" use_configuration_file="true" />
|
||||||
|
0
.idea/phpunit.xml
Executable file → Normal file
0
.idea/phpunit.xml
Executable file → Normal file
0
.idea/vcs.xml
Executable file → Normal file
0
.idea/vcs.xml
Executable file → Normal file
0
.phive/phars.xml
Executable file → Normal file
0
.phive/phars.xml
Executable file → Normal file
22
.styleci.yml
Executable file → Normal file
22
.styleci.yml
Executable file → Normal file
@ -1,13 +1,13 @@
|
|||||||
risky: false
|
php:
|
||||||
version: 7
|
preset: laravel
|
||||||
preset: recommended
|
disabled:
|
||||||
|
- unused_use
|
||||||
finder:
|
finder:
|
||||||
exclude:
|
|
||||||
- "modules"
|
|
||||||
- "node_modules"
|
|
||||||
- "storage"
|
|
||||||
- "vendor"
|
|
||||||
name: "*.php"
|
|
||||||
not-name:
|
not-name:
|
||||||
- "*.blade.php"
|
- index.php
|
||||||
- "_ide_helper.php"
|
- server.php
|
||||||
|
js:
|
||||||
|
finder:
|
||||||
|
not-name:
|
||||||
|
- webpack.mix.js
|
||||||
|
css: true
|
||||||
|
6
.vscode/launch.json
vendored
Executable file → Normal file
6
.vscode/launch.json
vendored
Executable file → Normal file
@ -4,15 +4,11 @@
|
|||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
|
|
||||||
{
|
{
|
||||||
"name": "Listen for XDebug",
|
"name": "Listen for XDebug",
|
||||||
"type": "php",
|
"type": "php",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"port": 9000,
|
"port": 9000
|
||||||
"ignore": [
|
|
||||||
"**/vendor/**/*.php"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Launch currently open script",
|
"name": "Launch currently open script",
|
||||||
|
0
CODE_OF_CONDUCT.md
Executable file → Normal file
0
CODE_OF_CONDUCT.md
Executable file → Normal file
0
CONTRIBUTING.md
Executable file → Normal file
0
CONTRIBUTING.md
Executable file → Normal file
12
README.md
Executable file → Normal file
12
README.md
Executable file → Normal file
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
# Raspberry Teams - The Simple Staff Application Manager v 0.6.2 [![Crowdin](https://badges.crowdin.net/raspberry-staff-manager/localized.svg)](https://crowdin.com/project/raspberry-staff-manager) [![StyleCI](https://bitbucket.styleci.io/repos/2513833655827911319/shield?branch=develop)](https://bitbucket.styleci.io/repos/2513833655827911319?branch=develop)
|
# 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?
|
||||||
|
|
||||||
@ -43,10 +43,10 @@ Many other features are currently planned for this app, such as:
|
|||||||
|
|
||||||
Tech stack:
|
Tech stack:
|
||||||
- [Laravel 7](https://laravel.com/)
|
- [Laravel 7](https://laravel.com/)
|
||||||
- [Eloquent ORM](https://laravel.com/docs/5.0/eloquent)
|
- Eloquent ORM
|
||||||
- [AdminLTE](https://adminlte.io/) / [Bootstrap 4](https://getbootstrap.com/docs/4.0/getting-started/introduction/)
|
- AdminLTE / Bootstrap 4
|
||||||
- [jQuery](https://jquery.com/) / [Plain Javascript](https://www.javascript.com/)
|
- jQuery / Plain Javascript
|
||||||
- [vueJS](https://vuejs.org/) (in the future)
|
- vueJS (in the future)
|
||||||
|
|
||||||
# Stability
|
# Stability
|
||||||
|
|
||||||
|
0
SECURITY.md
Executable file → Normal file
0
SECURITY.md
Executable file → Normal file
28
app/Application.php
Executable file → Normal file
28
app/Application.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
@ -29,10 +10,13 @@ class Application extends Model
|
|||||||
|
|
||||||
'applicantUserID',
|
'applicantUserID',
|
||||||
'applicantFormResponseID',
|
'applicantFormResponseID',
|
||||||
'applicationStatus',
|
'applicationStatus'
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function user()
|
public function user()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\User', 'applicantUserID', 'id');
|
return $this->belongsTo('App\User', 'applicantUserID', 'id');
|
||||||
@ -53,6 +37,7 @@ class Application extends Model
|
|||||||
return $this->belongsToMany('App\Vote', 'votes_has_application');
|
return $this->belongsToMany('App\Vote', 'votes_has_application');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function comments()
|
public function comments()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Comment', 'applicationID', 'id');
|
return $this->hasMany('App\Comment', 'applicationID', 'id');
|
||||||
@ -61,7 +46,8 @@ class Application extends Model
|
|||||||
public function setStatus($status)
|
public function setStatus($status)
|
||||||
{
|
{
|
||||||
return $this->update([
|
return $this->update([
|
||||||
'applicationStatus' => $status,
|
'applicationStatus' => $status
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
23
app/Appointment.php
Executable file → Normal file
23
app/Appointment.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
@ -32,7 +13,7 @@ class Appointment extends Model
|
|||||||
'appointmentStatus',
|
'appointmentStatus',
|
||||||
'appointmentLocation',
|
'appointmentLocation',
|
||||||
'meetingNotes',
|
'meetingNotes',
|
||||||
'userAccepted',
|
'userAccepted'
|
||||||
];
|
];
|
||||||
|
|
||||||
public function application()
|
public function application()
|
||||||
@ -44,7 +25,7 @@ class Appointment extends Model
|
|||||||
public function setStatus($status)
|
public function setStatus($status)
|
||||||
{
|
{
|
||||||
$this->update([
|
$this->update([
|
||||||
'appointmentStatus' => $status,
|
'appointmentStatus' => $status
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
25
app/Ban.php
Executable file → Normal file
25
app/Ban.php
Executable file → Normal file
@ -1,46 +1,29 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
class Ban extends Model
|
class Ban extends Model
|
||||||
{
|
{
|
||||||
|
|
||||||
public $fillable = [
|
public $fillable = [
|
||||||
|
|
||||||
'userID',
|
'userID',
|
||||||
'reason',
|
'reason',
|
||||||
'bannedUntil',
|
'bannedUntil',
|
||||||
'userAgent',
|
'userAgent',
|
||||||
'authorUserID',
|
'authorUserID'
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
public $dates = [
|
public $dates = [
|
||||||
'bannedUntil',
|
'bannedUntil'
|
||||||
];
|
];
|
||||||
|
|
||||||
public function user()
|
public function user()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\User', 'userID', 'id');
|
return $this->belongsTo('App\User', 'userID', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
23
app/Comment.php
Executable file → Normal file
23
app/Comment.php
Executable file → Normal file
@ -1,34 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
class Comment extends Model
|
class Comment extends Model
|
||||||
{
|
{
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'authorID',
|
'authorID',
|
||||||
'applicationID',
|
'applicationID',
|
||||||
'text',
|
'text'
|
||||||
];
|
];
|
||||||
|
|
||||||
public function application()
|
public function application()
|
||||||
@ -40,4 +22,5 @@ class Comment extends Model
|
|||||||
{
|
{
|
||||||
return $this->belongsTo('App\User', 'authorID', 'id');
|
return $this->belongsTo('App\User', 'authorID', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
71
app/Console/Commands/CountVotes.php
Executable file → Normal file
71
app/Console/Commands/CountVotes.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Console\Commands;
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
use App\Application;
|
use App\Application;
|
||||||
@ -62,23 +43,28 @@ class CountVotes extends Command
|
|||||||
$eligibleApps = Application::where('applicationStatus', 'STAGE_PEERAPPROVAL')->get();
|
$eligibleApps = Application::where('applicationStatus', 'STAGE_PEERAPPROVAL')->get();
|
||||||
$pbar = $this->output->createProgressBar($eligibleApps->count());
|
$pbar = $this->output->createProgressBar($eligibleApps->count());
|
||||||
|
|
||||||
if ($eligibleApps->isEmpty()) {
|
if($eligibleApps->isEmpty())
|
||||||
|
{
|
||||||
$this->error('𐄂 There are no applications that need to be processed.');
|
$this->error('𐄂 There are no applications that need to be processed.');
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($eligibleApps as $application) {
|
foreach ($eligibleApps as $application)
|
||||||
|
{
|
||||||
$votes = $application->votes;
|
$votes = $application->votes;
|
||||||
$voteCount = $application->votes->count();
|
$voteCount = $application->votes->count();
|
||||||
|
|
||||||
$positiveVotes = 0;
|
$positiveVotes = 0;
|
||||||
$negativeVotes = 0;
|
$negativeVotes = 0;
|
||||||
|
|
||||||
if ($voteCount > 5) {
|
if ($voteCount > 5)
|
||||||
|
{
|
||||||
$this->info('Counting votes for application ID ' . $application->id);
|
$this->info('Counting votes for application ID ' . $application->id);
|
||||||
foreach ($votes as $vote) {
|
foreach ($votes as $vote)
|
||||||
switch ($vote->allowedVoteType) {
|
{
|
||||||
|
switch ($vote->allowedVoteType)
|
||||||
|
{
|
||||||
case 'VOTE_APPROVE':
|
case 'VOTE_APPROVE':
|
||||||
$positiveVotes++;
|
$positiveVotes++;
|
||||||
break;
|
break;
|
||||||
@ -97,43 +83,54 @@ class CountVotes extends Command
|
|||||||
|
|
||||||
$this->table([
|
$this->table([
|
||||||
'% of approval votes',
|
'% of approval votes',
|
||||||
'% of denial votes',
|
'% of denial votes'
|
||||||
], [ // array of arrays, e.g. rows
|
], [ // array of arrays, e.g. rows
|
||||||
[
|
[
|
||||||
$positiveVotePercent.'%',
|
$positiveVotePercent . "%",
|
||||||
$negativeVotePercent.'%',
|
$negativeVotePercent . "%"
|
||||||
],
|
]
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($pollResult) {
|
if ($pollResult)
|
||||||
|
{
|
||||||
$this->info('✓ Dispatched promotion event for applicant ' . $application->user->name);
|
$this->info('✓ Dispatched promotion event for applicant ' . $application->user->name);
|
||||||
if (! $this->option('dryrun')) {
|
if (!$this->option('dryrun'))
|
||||||
|
{
|
||||||
$application->response->vacancy->vacancyCount -= 1;
|
$application->response->vacancy->vacancyCount -= 1;
|
||||||
$application->response->vacancy->save();
|
$application->response->vacancy->save();
|
||||||
|
|
||||||
event(new ApplicationApprovedEvent(Application::find($application->id)));
|
event(new ApplicationApprovedEvent(Application::find($application->id)));
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$this->warn('Dry run: Event won\'t be dispatched');
|
$this->warn('Dry run: Event won\'t be dispatched');
|
||||||
}
|
}
|
||||||
|
|
||||||
$pbar->advance();
|
$pbar->advance();
|
||||||
} else {
|
|
||||||
if (! $this->option('dryrun')) {
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
if (!$this->option('dryrun'))
|
||||||
|
{
|
||||||
event(new ApplicationDeniedEvent(Application::find($application->id)));
|
event(new ApplicationDeniedEvent(Application::find($application->id)));
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$this->warn('Dry run: Event won\'t be dispatched');
|
$this->warn('Dry run: Event won\'t be dispatched');
|
||||||
}
|
}
|
||||||
|
|
||||||
$pbar->advance();
|
$pbar->advance();
|
||||||
$this->error('𐄂 Applicant ' . $application->user->name . ' does not meet vote criteria (Majority)');
|
$this->error('𐄂 Applicant ' . $application->user->name . ' does not meet vote criteria (Majority)');
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
$this->warn('Application ID'.$application->id.' did not have enough votes for processing (min 5)');
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->warn("Application ID" . $application->id . " did not have enough votes for processing (min 5)");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$pbar->finish();
|
$pbar->finish();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,140 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Console\Commands;
|
|
||||||
|
|
||||||
use App\Facades\UUID;
|
|
||||||
use App\Profile;
|
|
||||||
use App\User;
|
|
||||||
use Illuminate\Console\Command;
|
|
||||||
use Illuminate\Support\Facades\Hash;
|
|
||||||
|
|
||||||
class CreateUser extends Command
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The name and signature of the console command.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $signature = 'users:create';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The console command description.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $description = 'Creates an application user. Seeding the database is for testing environments, so use this command in production for your first admin user.';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new command instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Execute the console command.
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function handle()
|
|
||||||
{
|
|
||||||
do {
|
|
||||||
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
|
|
||||||
system('cls');
|
|
||||||
} else {
|
|
||||||
system('clear');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->info('Welcome to the user account creation wizard. If you just installed the application, we recommend you create your first admin user here. If you don\'t, you won\'t gain admin privileges after creating an account in the web interface.');
|
|
||||||
$this->info('We\'ll ask some questions to get you started.');
|
|
||||||
|
|
||||||
$username = $this->ask('Username');
|
|
||||||
do {
|
|
||||||
$password = $this->secret('Password');
|
|
||||||
$password_confirm = $this->secret('Confirm Password');
|
|
||||||
|
|
||||||
if ($password === $password_confirm) {
|
|
||||||
$password = Hash::make($password);
|
|
||||||
$matches = true;
|
|
||||||
} else {
|
|
||||||
$this->error('Password doesn\'t match. Please try again.');
|
|
||||||
$matches = false;
|
|
||||||
}
|
|
||||||
} while (! $matches);
|
|
||||||
|
|
||||||
$email = $this->ask('E-mail address');
|
|
||||||
$name = $this->ask('First/Last Name');
|
|
||||||
|
|
||||||
do {
|
|
||||||
try {
|
|
||||||
$uuid = UUID::toUUID($this->ask('Minecraft username (Must be a valid Premium account)'));
|
|
||||||
} catch (\InvalidArgumentException $e) {
|
|
||||||
$this->error($e->getMessage());
|
|
||||||
$hasError = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($hasError)) {
|
|
||||||
$continue = true;
|
|
||||||
} else {
|
|
||||||
$continue = false;
|
|
||||||
}
|
|
||||||
unset($hasError);
|
|
||||||
} while ($continue);
|
|
||||||
|
|
||||||
$this->info('Please check if these details are correct: ');
|
|
||||||
$this->info('Username: '.$username);
|
|
||||||
$this->info('Email: '.$email);
|
|
||||||
$this->info('Name: '.$name);
|
|
||||||
} while (! $this->confirm('Create user now? You can go back to correct any details.'));
|
|
||||||
|
|
||||||
$user = User::create([
|
|
||||||
'uuid' => $uuid,
|
|
||||||
'name' => $name,
|
|
||||||
'email' => $email,
|
|
||||||
'username' => $username,
|
|
||||||
'originalIP' => '127.0.0.1',
|
|
||||||
'password' => $password,
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($user) {
|
|
||||||
$user->assignRole('admin', 'reviewer', 'user', 'hiringManager');
|
|
||||||
Profile::create([
|
|
||||||
'profileShortBio' => 'Random data '.rand(0, 1000),
|
|
||||||
'profileAboutMe' => 'Random data '.rand(0, 1000),
|
|
||||||
'socialLinks' => '[]',
|
|
||||||
'avatarPreference' => 'gravatar',
|
|
||||||
'userID' => $user->id,
|
|
||||||
]);
|
|
||||||
|
|
||||||
$this->info('Account created! You may now login at '.route('login').'. Enjoy the app!');
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
} else {
|
|
||||||
$this->error('There was an unknown problem creating the user. There might have been errors above. Please try again.');
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
51
app/Console/Commands/Install.php
Executable file → Normal file
51
app/Console/Commands/Install.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Console\Commands;
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
@ -58,10 +39,15 @@ class Install extends Command
|
|||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
$basePath = base_path();
|
$basePath = base_path();
|
||||||
if (Storage::disk('local')->missing('INSTALLED')) {
|
if (Storage::disk('local')->missing('INSTALLED'))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
$this->info('[!! Welcome to Rasberry Teams !!]');
|
$this->info('[!! Welcome to Rasberry Teams !!]');
|
||||||
$this->info('>> Installing...');
|
$this->info('>> Installing...');
|
||||||
$this->call('down');
|
$this->call('down', [
|
||||||
|
'--message' => 'Down for maintenance. We\'ll be right back!'
|
||||||
|
]);
|
||||||
|
|
||||||
copy($basePath . '/.env.example', $basePath . '/.env');
|
copy($basePath . '/.env.example', $basePath . '/.env');
|
||||||
$this->call('key:generate');
|
$this->call('key:generate');
|
||||||
@ -77,17 +63,22 @@ class Install extends Command
|
|||||||
exec('cd ' . $basePath . ' && npm install --silent', $npmBuildOut, $npmOut);
|
exec('cd ' . $basePath . ' && npm install --silent', $npmBuildOut, $npmOut);
|
||||||
exec('cd ' . $basePath . '&& npm run dev --silent', $npmBuildMessages, $npmBuildOut);
|
exec('cd ' . $basePath . '&& npm run dev --silent', $npmBuildMessages, $npmBuildOut);
|
||||||
|
|
||||||
if ($npmOut !== 0 && $npmBuildOut !== 0) {
|
|
||||||
|
if($npmOut !== 0 && $npmBuildOut !== 0)
|
||||||
|
{
|
||||||
$this->error('[!] One or more errors have ocurred whilst attempting to install dependencies.');
|
$this->error('[!] One or more errors have ocurred whilst attempting to install dependencies.');
|
||||||
$this->error('[!] It is recommended to run this command again, and report a bug if it keeps happening.');
|
$this->error('[!] It is recommended to run this command again, and report a bug if it keeps happening.');
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$settings = [];
|
$settings = [];
|
||||||
|
|
||||||
$this->info('>> Configuring application - We\'re going to ask a few questions here!');
|
$this->info('>> Configuring application - We\'re going to ask a few questions here!');
|
||||||
do {
|
do
|
||||||
|
{
|
||||||
$this->info('== Database Settings (1/6) ==');
|
$this->info('== Database Settings (1/6) ==');
|
||||||
|
|
||||||
$settings['DB_USERNAME'] = $this->ask('Database username');
|
$settings['DB_USERNAME'] = $this->ask('Database username');
|
||||||
@ -108,7 +99,7 @@ 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'] = $this->ask('E-mail address to send from: ');
|
$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');
|
||||||
@ -117,12 +108,15 @@ class Install extends Command
|
|||||||
$settings['APP_URL'] = $this->ask('Application\'s URL (ex. https://where.you.installed.theapp.com): ');
|
$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_LOGO'] = $this->ask('App logo (Link to an image): ');
|
||||||
$settings['APP_SITEHOMEPAGE'] = $this->ask('Site homepage (appears in the main header): ');
|
$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.'));
|
||||||
|
|
||||||
foreach ($settings as $keyname => $value) {
|
foreach($settings as $keyname => $value)
|
||||||
|
{
|
||||||
$this->call('environment:modify', [
|
$this->call('environment:modify', [
|
||||||
'key' => $keyname,
|
'key' => $keyname,
|
||||||
'value' => $value,
|
'value' => $value
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,7 +131,10 @@ class Install extends Command
|
|||||||
|
|
||||||
$this->call('up');
|
$this->call('up');
|
||||||
$this->info('>> All done! Visit ' . $basePath . ' to start using your brand new installation of Raspberry Teams!');
|
$this->info('>> All done! Visit ' . $basePath . ' to start using your brand new installation of Raspberry Teams!');
|
||||||
} else {
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$this->error('[!] The application is already installed!');
|
$this->error('[!] The application is already installed!');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,82 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Console\Commands;
|
|
||||||
|
|
||||||
use Faker\Factory;
|
|
||||||
use Faker\Generator;
|
|
||||||
use Illuminate\Console\Command;
|
|
||||||
use Illuminate\Support\Facades\Storage;
|
|
||||||
|
|
||||||
class MakeFile extends Command
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The name and signature of the console command.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $signature = 'files:make {count : How many test files to generate}';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The console command description.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $description = 'Generates test files for the TeamFile model. Use in conjunction with it\'s factory.';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The faker instance used to obtain dummy text.
|
|
||||||
*
|
|
||||||
* @var Generator
|
|
||||||
*/
|
|
||||||
private $faker;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new command instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->faker = Factory::create();
|
|
||||||
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Execute the console command.
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function handle()
|
|
||||||
{
|
|
||||||
$count = $this->argument('count');
|
|
||||||
$this->info('Creating '.$this->argument('count').' files!');
|
|
||||||
|
|
||||||
for ($max = 1; $max < $count; $max++) {
|
|
||||||
Storage::disk('local')->put('factory_files/testfile_'.rand(0, 5000).'.txt', $this->faker->paragraphs(40, true));
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->info('Finished creating files! They will be randomly picked by the factory.');
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
33
app/Console/Commands/SetEnv.php
Executable file → Normal file
33
app/Console/Commands/SetEnv.php
Executable file → Normal file
@ -1,28 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Console\Commands;
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
use GeoSot\EnvEditor\Facades\EnvEditor;
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
use GeoSot\EnvEditor\Facades\EnvEditor;
|
||||||
|
|
||||||
class SetEnv extends Command
|
class SetEnv extends Command
|
||||||
{
|
{
|
||||||
@ -60,11 +41,15 @@ class SetEnv extends Command
|
|||||||
$key = $this->argument('key');
|
$key = $this->argument('key');
|
||||||
$value = $this->argument('value');
|
$value = $this->argument('value');
|
||||||
|
|
||||||
if (file_exists($path)) {
|
|
||||||
EnvEditor::editKey($key, $value);
|
|
||||||
} else {
|
|
||||||
$this->error('Cannot update a file that doesn\'t exist! Please create .env first.');
|
|
||||||
|
|
||||||
|
|
||||||
|
if (file_exists($path))
|
||||||
|
{
|
||||||
|
EnvEditor::editKey($key, $value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error('Cannot update a file that doesn\'t exist! Please create .env first.');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
21
app/Console/Kernel.php
Executable file → Normal file
21
app/Console/Kernel.php
Executable file → Normal file
@ -1,29 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Console;
|
namespace App\Console;
|
||||||
|
|
||||||
use App\Jobs\CleanBans;
|
|
||||||
use Illuminate\Console\Scheduling\Schedule;
|
use Illuminate\Console\Scheduling\Schedule;
|
||||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||||
|
use App\Jobs\CleanBans;
|
||||||
|
|
||||||
class Kernel extends ConsoleKernel
|
class Kernel extends ConsoleKernel
|
||||||
{
|
{
|
||||||
|
31
app/CustomFacades/IP.php
Executable file → Normal file
31
app/CustomFacades/IP.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\CustomFacades;
|
namespace App\CustomFacades;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
@ -26,6 +7,7 @@ use Illuminate\Support\Facades\Http;
|
|||||||
|
|
||||||
class IP
|
class IP
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Looks up information on a specified IP address. Caches results automatically.
|
* Looks up information on a specified IP address. Caches results automatically.
|
||||||
* @param string $IP IP address to lookup
|
* @param string $IP IP address to lookup
|
||||||
@ -33,18 +15,23 @@ class IP
|
|||||||
*/
|
*/
|
||||||
public function lookup(string $IP): object
|
public function lookup(string $IP): object
|
||||||
{
|
{
|
||||||
|
|
||||||
$params = [
|
$params = [
|
||||||
'apiKey' => config('general.keys.ipapi.apikey'),
|
'apiKey' => config('general.keys.ipapi.apikey'),
|
||||||
'ip' => $IP,
|
'ip' => $IP
|
||||||
];
|
];
|
||||||
|
|
||||||
// TODO: Maybe unwrap this? Methods are chained here
|
// TODO: Maybe unwrap this? Methods are chained here
|
||||||
|
|
||||||
return json_decode(Cache::remember($IP, 3600, function () use ($IP) {
|
return json_decode(Cache::remember($IP, 3600, function() use ($IP)
|
||||||
|
{
|
||||||
return Http::get(config('general.urls.ipapi.ipcheck'), [
|
return Http::get(config('general.urls.ipapi.ipcheck'), [
|
||||||
'apiKey' => config('general.keys.ipapi.apikey'),
|
'apiKey' => config('general.keys.ipapi.apikey'),
|
||||||
'ip' => $IP,
|
'ip' => $IP
|
||||||
])->body();
|
])->body();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
25
app/Events/ApplicationApprovedEvent.php
Executable file → Normal file
25
app/Events/ApplicationApprovedEvent.php
Executable file → Normal file
@ -1,28 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Events;
|
namespace App\Events;
|
||||||
|
|
||||||
use App\Application;
|
use App\Application;
|
||||||
|
use Illuminate\Broadcasting\Channel;
|
||||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||||
|
use Illuminate\Broadcasting\PresenceChannel;
|
||||||
|
use Illuminate\Broadcasting\PrivateChannel;
|
||||||
|
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
|
||||||
use Illuminate\Foundation\Events\Dispatchable;
|
use Illuminate\Foundation\Events\Dispatchable;
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
|
||||||
@ -41,4 +26,6 @@ class ApplicationApprovedEvent
|
|||||||
{
|
{
|
||||||
$this->application = $application;
|
$this->application = $application;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
24
app/Events/ApplicationDeniedEvent.php
Executable file → Normal file
24
app/Events/ApplicationDeniedEvent.php
Executable file → Normal file
@ -1,28 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Events;
|
namespace App\Events;
|
||||||
|
|
||||||
use App\Application;
|
use App\Application;
|
||||||
|
use Illuminate\Broadcasting\Channel;
|
||||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||||
|
use Illuminate\Broadcasting\PresenceChannel;
|
||||||
|
use Illuminate\Broadcasting\PrivateChannel;
|
||||||
|
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
|
||||||
use Illuminate\Foundation\Events\Dispatchable;
|
use Illuminate\Foundation\Events\Dispatchable;
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
|
||||||
@ -41,4 +26,5 @@ class ApplicationDeniedEvent
|
|||||||
{
|
{
|
||||||
$this->application = $application;
|
$this->application = $application;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
22
app/Events/NewApplicationEvent.php
Executable file → Normal file
22
app/Events/NewApplicationEvent.php
Executable file → Normal file
@ -1,28 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Events;
|
namespace App\Events;
|
||||||
|
|
||||||
|
use Illuminate\Broadcasting\Channel;
|
||||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||||
|
use Illuminate\Broadcasting\PresenceChannel;
|
||||||
use Illuminate\Broadcasting\PrivateChannel;
|
use Illuminate\Broadcasting\PrivateChannel;
|
||||||
|
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
|
||||||
use Illuminate\Foundation\Events\Dispatchable;
|
use Illuminate\Foundation\Events\Dispatchable;
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
|
||||||
|
30
app/Events/UserBannedEvent.php
Executable file → Normal file
30
app/Events/UserBannedEvent.php
Executable file → Normal file
@ -1,36 +1,23 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Events;
|
namespace App\Events;
|
||||||
|
|
||||||
use App\Ban;
|
use Illuminate\Broadcasting\Channel;
|
||||||
use App\User;
|
|
||||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||||
|
use Illuminate\Broadcasting\PresenceChannel;
|
||||||
|
use Illuminate\Broadcasting\PrivateChannel;
|
||||||
|
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
|
||||||
use Illuminate\Foundation\Events\Dispatchable;
|
use Illuminate\Foundation\Events\Dispatchable;
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use App\Ban;
|
||||||
|
|
||||||
class UserBannedEvent
|
class UserBannedEvent
|
||||||
{
|
{
|
||||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||||
|
|
||||||
|
|
||||||
public $user;
|
public $user;
|
||||||
|
|
||||||
public $ban;
|
public $ban;
|
||||||
@ -45,4 +32,5 @@ class UserBannedEvent
|
|||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
$this->ban = $ban;
|
$this->ban = $ban;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
19
app/Exceptions/Handler.php
Executable file → Normal file
19
app/Exceptions/Handler.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Exceptions;
|
namespace App\Exceptions;
|
||||||
|
|
||||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||||
|
22
app/Facades/ContextAwareValidation.php
Executable file → Normal file
22
app/Facades/ContextAwareValidation.php
Executable file → Normal file
@ -1,32 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Facades;
|
namespace App\Facades;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Facade;
|
use Illuminate\Support\Facades\Facade;
|
||||||
|
|
||||||
class ContextAwareValidation extends Facade
|
class ContextAwareValidation extends Facade
|
||||||
{
|
{
|
||||||
|
|
||||||
protected static function getFacadeAccessor()
|
protected static function getFacadeAccessor()
|
||||||
{
|
{
|
||||||
return 'contextAwareValidator';
|
return 'contextAwareValidator';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
|
|
||||||
namespace App\Facades;
|
|
||||||
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Facade;
|
|
||||||
|
|
||||||
class DigitalStorageHelper extends Facade
|
|
||||||
{
|
|
||||||
|
|
||||||
protected static function getFacadeAccessor()
|
|
||||||
{
|
|
||||||
return 'digitalStorageHelperFacadeRoot';
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
19
app/Facades/IP.php
Executable file → Normal file
19
app/Facades/IP.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Facades;
|
namespace App\Facades;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Facade;
|
use Illuminate\Support\Facades\Facade;
|
||||||
|
21
app/Facades/Options.php
Executable file → Normal file
21
app/Facades/Options.php
Executable file → Normal file
@ -1,27 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Facades;
|
namespace App\Facades;
|
||||||
|
use \Illuminate\Support\Facades\Facade;
|
||||||
use Illuminate\Support\Facades\Facade;
|
|
||||||
|
|
||||||
class Options extends Facade
|
class Options extends Facade
|
||||||
{
|
{
|
||||||
|
19
app/Facades/UUID.php
Executable file → Normal file
19
app/Facades/UUID.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Facades;
|
namespace App\Facades;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Facade;
|
use Illuminate\Support\Facades\Facade;
|
||||||
|
21
app/Form.php
Executable file → Normal file
21
app/Form.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
@ -29,7 +10,7 @@ class Form extends Model
|
|||||||
|
|
||||||
'formName',
|
'formName',
|
||||||
'formStructure',
|
'formStructure',
|
||||||
'formStatus',
|
'formStatus'
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
63
app/Helpers/ContextAwareValidator.php
Executable file → Normal file
63
app/Helpers/ContextAwareValidator.php
Executable file → Normal file
@ -1,31 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Helpers;
|
namespace App\Helpers;
|
||||||
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
|
||||||
class ContextAwareValidator
|
class ContextAwareValidator
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The excludedNames array will make the validator ignore any of these names when including names into the rules.
|
* The excludedNames array will make the validator ignore any of these names when including names into the rules.
|
||||||
* @var array
|
* @var array
|
||||||
@ -33,9 +15,10 @@ class ContextAwareValidator
|
|||||||
private $excludedNames = [
|
private $excludedNames = [
|
||||||
'_token',
|
'_token',
|
||||||
'_method',
|
'_method',
|
||||||
'formName',
|
'formName'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility wrapper for json_encode.
|
* Utility wrapper for json_encode.
|
||||||
*
|
*
|
||||||
@ -70,19 +53,24 @@ class ContextAwareValidator
|
|||||||
$formStructure = [];
|
$formStructure = [];
|
||||||
$validator = [];
|
$validator = [];
|
||||||
|
|
||||||
if ($includeFormName) {
|
if ($includeFormName)
|
||||||
|
{
|
||||||
$validator['formName'] = 'required|string|max:100';
|
$validator['formName'] = 'required|string|max:100';
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($fields as $fieldName => $field) {
|
foreach ($fields as $fieldName => $field)
|
||||||
if (! in_array($fieldName, $this->excludedNames)) {
|
{
|
||||||
$validator[$fieldName.'.0'] = 'required|string';
|
if(!in_array($fieldName, $this->excludedNames))
|
||||||
$validator[$fieldName.'.1'] = 'required|string';
|
{
|
||||||
|
$validator[$fieldName . ".0"] = 'required|string';
|
||||||
|
$validator[$fieldName . ".1"] = 'required|string';
|
||||||
|
|
||||||
if ($generateStructure) {
|
if ($generateStructure)
|
||||||
|
{
|
||||||
$formStructure['fields'][$fieldName]['title'] = $field[0];
|
$formStructure['fields'][$fieldName]['title'] = $field[0];
|
||||||
$formStructure['fields'][$fieldName]['type'] = $field[1];
|
$formStructure['fields'][$fieldName]['type'] = $field[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,9 +79,11 @@ class ContextAwareValidator
|
|||||||
return ($generateStructure) ?
|
return ($generateStructure) ?
|
||||||
collect([
|
collect([
|
||||||
'validator' => $validatorInstance,
|
'validator' => $validatorInstance,
|
||||||
'structure' => $this->encode($formStructure),
|
'structure' => $this->encode($formStructure)
|
||||||
])
|
])
|
||||||
: $validatorInstance;
|
: $validatorInstance;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -110,18 +100,23 @@ class ContextAwareValidator
|
|||||||
*/
|
*/
|
||||||
public function getResponseValidator(array $fields, array $formStructure = [], bool $generateResponseStructure = true)
|
public function getResponseValidator(array $fields, array $formStructure = [], bool $generateResponseStructure = true)
|
||||||
{
|
{
|
||||||
|
|
||||||
$responseStructure = [];
|
$responseStructure = [];
|
||||||
$validator = [];
|
$validator = [];
|
||||||
|
|
||||||
if (empty($formStructure) && $generateResponseStructure) {
|
if (empty($formStructure) && $generateResponseStructure)
|
||||||
|
{
|
||||||
throw new \InvalidArgumentException('Illegal combination of arguments supplied! Please check the method\'s documentation.');
|
throw new \InvalidArgumentException('Illegal combination of arguments supplied! Please check the method\'s documentation.');
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($fields as $fieldName => $value) {
|
foreach($fields as $fieldName => $value)
|
||||||
if (! in_array($fieldName, $this->excludedNames)) {
|
{
|
||||||
|
if(!in_array($fieldName, $this->excludedNames))
|
||||||
|
{
|
||||||
$validator[$fieldName] = 'required|string';
|
$validator[$fieldName] = 'required|string';
|
||||||
|
|
||||||
if ($generateResponseStructure) {
|
if ($generateResponseStructure)
|
||||||
|
{
|
||||||
$responseStructure['responses'][$fieldName]['type'] = $formStructure['fields'][$fieldName]['type'] ?? 'Unavailable';
|
$responseStructure['responses'][$fieldName]['type'] = $formStructure['fields'][$fieldName]['type'] ?? 'Unavailable';
|
||||||
$responseStructure['responses'][$fieldName]['title'] = $formStructure['fields'][$fieldName]['title'];
|
$responseStructure['responses'][$fieldName]['title'] = $formStructure['fields'][$fieldName]['title'];
|
||||||
$responseStructure['responses'][$fieldName]['response'] = $value;
|
$responseStructure['responses'][$fieldName]['response'] = $value;
|
||||||
@ -134,8 +129,10 @@ class ContextAwareValidator
|
|||||||
return ($generateResponseStructure) ?
|
return ($generateResponseStructure) ?
|
||||||
collect([
|
collect([
|
||||||
'validator' => $validatorInstance,
|
'validator' => $validatorInstance,
|
||||||
'responseStructure' => $this->encode($responseStructure),
|
'responseStructure' => $this->encode($responseStructure)
|
||||||
])
|
])
|
||||||
: $validatorInstance;
|
: $validatorInstance;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,107 +0,0 @@
|
|||||||
<?php declare(strict_types=1);
|
|
||||||
|
|
||||||
|
|
||||||
namespace App\Helpers;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class DigitalStorageHelper
|
|
||||||
*
|
|
||||||
* The digital storage helper class helps you convert bytes into several other units.
|
|
||||||
* It should be used whenever you need to display a file's size in a human readable way.
|
|
||||||
*
|
|
||||||
* It's framework agnostic, meaning you can take it out of context and it'll still work; However, you'll have to instantiate it first.
|
|
||||||
* @package App\Helpers
|
|
||||||
*/
|
|
||||||
class DigitalStorageHelper
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The digital storage value to be manipulated.
|
|
||||||
* @var $value
|
|
||||||
*/
|
|
||||||
protected $value;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the digital storage value for manipulation.
|
|
||||||
*
|
|
||||||
* @param int $value The digital storage value in bytes
|
|
||||||
* @return $this The current instance
|
|
||||||
*/
|
|
||||||
public function setValue(int $value): DigitalStorageHelper
|
|
||||||
{
|
|
||||||
$this->value = $value;
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts the digital storage value to kilobytes.
|
|
||||||
*
|
|
||||||
* @return float|int
|
|
||||||
*/
|
|
||||||
public function toKilobytes(): float
|
|
||||||
{
|
|
||||||
return $this->value / 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts the digital storage value to megabytes.
|
|
||||||
*
|
|
||||||
* @return float|int
|
|
||||||
*/
|
|
||||||
public function toMegabytes(): float
|
|
||||||
{
|
|
||||||
return $this->value / (1 * pow(10, 6)); // 1 times 10 to the power of 6
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert the digital storage value to gigabytes. Might be an approximation
|
|
||||||
*
|
|
||||||
* @return float
|
|
||||||
*/
|
|
||||||
public function toGigabytes(): float
|
|
||||||
{
|
|
||||||
return $this->value / (1 * pow(10, 9));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert the digital storage value to terabytes.
|
|
||||||
*
|
|
||||||
* @return float
|
|
||||||
*/
|
|
||||||
public function toTerabytes(): float
|
|
||||||
{
|
|
||||||
return $this->value / (1 * pow(10, 12));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Format the digital storage value to one of the units: b, kb, mb, gb and tb.
|
|
||||||
* The method has been adapted to use both MiB and MB values.
|
|
||||||
*
|
|
||||||
* @param int $precision The rounding precision
|
|
||||||
* @param bool $si Use international system units. Defaults to false
|
|
||||||
* @return string The human readable digital storage value, in either, for instance, MB or MiB
|
|
||||||
* @see https://stackoverflow.com/a/2510459/11540218 StackOverflow question regarding unit conversion
|
|
||||||
* @since 7.3.23
|
|
||||||
*/
|
|
||||||
public function formatBytes($precision = 2, $si = false): string
|
|
||||||
{
|
|
||||||
$units = ['B', 'KiB', 'MiB', 'GiB', 'TiB'];
|
|
||||||
if ($si)
|
|
||||||
$units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
||||||
|
|
||||||
$bytes = max($this->value, 0);
|
|
||||||
$pow = floor(($bytes ? log($bytes) : 0) / log(($si) ? 1000 : 1024));
|
|
||||||
$pow = min($pow, count($units) - 1);
|
|
||||||
|
|
||||||
$bytes /= pow(($si) ? 1000 : 1024, $pow);
|
|
||||||
|
|
||||||
return round($bytes, $precision) . ' ' . $units[$pow];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
47
app/Helpers/Options.php
Executable file → Normal file
47
app/Helpers/Options.php
Executable file → Normal file
@ -1,23 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Helpers;
|
namespace App\Helpers;
|
||||||
|
|
||||||
@ -27,23 +9,23 @@ use Illuminate\Support\Facades\Log;
|
|||||||
|
|
||||||
class Options
|
class Options
|
||||||
{
|
{
|
||||||
|
|
||||||
public function getOption(string $option): string
|
public function getOption(string $option): string
|
||||||
{
|
{
|
||||||
$value = Cache::get($option);
|
$value = Cache::get($option);
|
||||||
|
|
||||||
if (is_null($value)) {
|
if (is_null($value))
|
||||||
|
{
|
||||||
Log::debug('Option ' . $option . 'not found in cache, refreshing from database');
|
Log::debug('Option ' . $option . 'not found in cache, refreshing from database');
|
||||||
$value = Option::where('option_name', $option)->first();
|
$value = Option::where('option_name', $option)->first();
|
||||||
if (is_null($value)) {
|
if (is_null($value))
|
||||||
throw new \Exception('This option does not exist.');
|
throw new \Exception('This option does not exist.');
|
||||||
}
|
|
||||||
Cache::put($option, $value);
|
Cache::put($option, $value);
|
||||||
Cache::put($option . '_desc', 'Undefined description');
|
Cache::put($option . '_desc', 'Undefined description');
|
||||||
|
|
||||||
return $value->option_value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $value;
|
return $value->option_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setOption(string $option, string $value, string $description)
|
public function setOption(string $option, string $value, string $description)
|
||||||
@ -51,7 +33,7 @@ class Options
|
|||||||
Option::create([
|
Option::create([
|
||||||
'option_name' => $option,
|
'option_name' => $option,
|
||||||
'option_value' => $value,
|
'option_value' => $value,
|
||||||
'friendly_name' => $description,
|
'friendly_name' => $description
|
||||||
]);
|
]);
|
||||||
|
|
||||||
Cache::put($option, $value, now()->addDay());
|
Cache::put($option, $value, now()->addDay());
|
||||||
@ -66,7 +48,7 @@ class Options
|
|||||||
// putMany is overkill here
|
// putMany is overkill here
|
||||||
return [
|
return [
|
||||||
Cache::pull($option),
|
Cache::pull($option),
|
||||||
Cache::pull($option.'_desc'),
|
Cache::pull($option . '_desc')
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,13 +56,14 @@ class Options
|
|||||||
{
|
{
|
||||||
$dbOption = Option::where('option_name', $option);
|
$dbOption = Option::where('option_name', $option);
|
||||||
|
|
||||||
if ($dbOption->first()) {
|
if ($dbOption->first())
|
||||||
|
{
|
||||||
$dbOptionInstance = Option::find($dbOption->first()->id);
|
$dbOptionInstance = Option::find($dbOption->first()->id);
|
||||||
Cache::forget($option);
|
Cache::forget($option);
|
||||||
|
|
||||||
Log::debug('Changing db configuration option', [
|
Log::debug('Changing db configuration option', [
|
||||||
'old_value' => $dbOptionInstance->option_value,
|
'old_value' => $dbOptionInstance->option_value,
|
||||||
'new_value' => $newValue,
|
'new_value' => $newValue
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$dbOptionInstance->option_value = $newValue;
|
$dbOptionInstance->option_value = $newValue;
|
||||||
@ -88,15 +71,18 @@ class Options
|
|||||||
|
|
||||||
Log::debug('New db configuration option saved',
|
Log::debug('New db configuration option saved',
|
||||||
[
|
[
|
||||||
'option' => $dbOptionInstance->option_value,
|
'option' => $dbOptionInstance->option_value
|
||||||
]);
|
]);
|
||||||
|
|
||||||
Cache::put('option_name', $newValue, now()->addDay());
|
Cache::put('option_name', $newValue, now()->addDay());
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
throw new \Exception('This option does not exist.');
|
throw new \Exception('This option does not exist.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function optionExists(string $option): bool
|
public function optionExists(string $option): bool
|
||||||
{
|
{
|
||||||
$dbOption = Option::where('option_name', $option)->first();
|
$dbOption = Option::where('option_name', $option)->first();
|
||||||
@ -104,4 +90,5 @@ class Options
|
|||||||
|
|
||||||
return !is_null($dbOption) || !is_null($locallyCachedOption);
|
return !is_null($dbOption) || !is_null($locallyCachedOption);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
163
app/Http/Controllers/ApplicationController.php
Executable file → Normal file
163
app/Http/Controllers/ApplicationController.php
Executable file → Normal file
@ -1,46 +1,36 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Application;
|
use App\Application;
|
||||||
use App\Events\ApplicationDeniedEvent;
|
|
||||||
use App\Notifications\ApplicationMoved;
|
|
||||||
use App\Notifications\NewApplicant;
|
|
||||||
use App\Response;
|
use App\Response;
|
||||||
use App\User;
|
|
||||||
use App\Vacancy;
|
use App\Vacancy;
|
||||||
use ContextAwareValidator;
|
use App\User;
|
||||||
|
|
||||||
|
use App\Events\ApplicationDeniedEvent;
|
||||||
|
use App\Notifications\NewApplicant;
|
||||||
|
use App\Notifications\ApplicationMoved;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
use ContextAwareValidator;
|
||||||
|
|
||||||
class ApplicationController extends Controller
|
class ApplicationController extends Controller
|
||||||
{
|
{
|
||||||
private function canVote($votes): bool
|
|
||||||
|
private function canVote($votes)
|
||||||
{
|
{
|
||||||
$allvotes = collect([]);
|
$allvotes = collect([]);
|
||||||
|
|
||||||
foreach ($votes as $vote) {
|
foreach ($votes as $vote)
|
||||||
if ($vote->userID == Auth::user()->id) {
|
{
|
||||||
|
if ($vote->userID == Auth::user()->id)
|
||||||
|
{
|
||||||
$allvotes->push($vote);
|
$allvotes->push($vote);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -48,17 +38,22 @@ class ApplicationController extends Controller
|
|||||||
return ($allvotes->count() == 1) ? false : true;
|
return ($allvotes->count() == 1) ? false : true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function showUserApps()
|
public function showUserApps()
|
||||||
{
|
{
|
||||||
|
|
||||||
return view('dashboard.user.applications')
|
return view('dashboard.user.applications')
|
||||||
->with('applications', Auth::user()->applications);
|
->with('applications', Auth::user()->applications);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function showUserApp(Request $request, Application $application)
|
public function showUserApp(Request $request, Application $application)
|
||||||
{
|
{
|
||||||
$this->authorize('view', $application);
|
$this->authorize('view', $application);
|
||||||
|
|
||||||
if (! is_null($application)) {
|
if (!is_null($application))
|
||||||
|
{
|
||||||
return view('dashboard.user.viewapp')
|
return view('dashboard.user.viewapp')
|
||||||
->with(
|
->with(
|
||||||
[
|
[
|
||||||
@ -67,16 +62,20 @@ class ApplicationController extends Controller
|
|||||||
'structuredResponses' => json_decode($application->response->responseData, true),
|
'structuredResponses' => json_decode($application->response->responseData, true),
|
||||||
'formStructure' => $application->response->form,
|
'formStructure' => $application->response->form,
|
||||||
'vacancy' => $application->response->vacancy,
|
'vacancy' => $application->response->vacancy,
|
||||||
'canVote' => $this->canVote($application->votes),
|
'canVote' => $this->canVote($application->votes)
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'The application you requested could not be found.');
|
$request->session()->flash('error', 'The application you requested could not be found.');
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function showAllApps()
|
public function showAllApps()
|
||||||
{
|
{
|
||||||
$this->authorize('viewAny', Application::class);
|
$this->authorize('viewAny', Application::class);
|
||||||
@ -86,6 +85,67 @@ class ApplicationController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function showAllPendingApps()
|
||||||
|
{
|
||||||
|
$this->authorize('viewAny', Application::class);
|
||||||
|
|
||||||
|
return view('dashboard.appmanagement.outstandingapps')
|
||||||
|
->with('applications', Application::where('applicationStatus', 'STAGE_SUBMITTED')->get());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function showPendingInterview()
|
||||||
|
{
|
||||||
|
$this->authorize('viewAny', Application::class);
|
||||||
|
$applications = Application::with('appointment', 'user')->get();
|
||||||
|
$count = 0;
|
||||||
|
|
||||||
|
$pendingInterviews = collect([]);
|
||||||
|
$upcomingInterviews = collect([]);
|
||||||
|
|
||||||
|
|
||||||
|
foreach ($applications as $application)
|
||||||
|
{
|
||||||
|
if (!is_null($application->appointment) && $application->appointment->appointmentStatus == 'CONCLUDED')
|
||||||
|
{
|
||||||
|
$count =+ 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($application->applicationStatus)
|
||||||
|
{
|
||||||
|
case 'STAGE_INTERVIEW':
|
||||||
|
$upcomingInterviews->push($application);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'STAGE_INTERVIEW_SCHEDULED':
|
||||||
|
$pendingInterviews->push($application);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('dashboard.appmanagement.interview')
|
||||||
|
->with([
|
||||||
|
'finishedCount' => $count,
|
||||||
|
'applications' => $pendingInterviews,
|
||||||
|
'upcomingApplications' => $upcomingInterviews
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public function showPeerReview()
|
||||||
|
{
|
||||||
|
$this->authorize('viewAny', Application::class);
|
||||||
|
return view('dashboard.appmanagement.peerreview')
|
||||||
|
->with('applications', Application::where('applicationStatus', 'STAGE_PEERAPPROVAL')->get());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function renderApplicationForm(Request $request, $vacancySlug)
|
public function renderApplicationForm(Request $request, $vacancySlug)
|
||||||
{
|
{
|
||||||
// FIXME: Get rid of references to first(), this is a wonky query
|
// FIXME: Get rid of references to first(), this is a wonky query
|
||||||
@ -93,27 +153,36 @@ class ApplicationController extends Controller
|
|||||||
|
|
||||||
$firstVacancy = $vacancyWithForm->first();
|
$firstVacancy = $vacancyWithForm->first();
|
||||||
|
|
||||||
if (! $vacancyWithForm->isEmpty() && $firstVacancy->vacancyCount !== 0 && $firstVacancy->vacancyStatus == 'OPEN') {
|
if (!$vacancyWithForm->isEmpty() && $firstVacancy->vacancyCount !== 0 && $firstVacancy->vacancyStatus == 'OPEN')
|
||||||
|
{
|
||||||
|
|
||||||
return view('dashboard.application-rendering.apply')
|
return view('dashboard.application-rendering.apply')
|
||||||
->with([
|
->with([
|
||||||
|
|
||||||
'vacancy' => $vacancyWithForm->first(),
|
'vacancy' => $vacancyWithForm->first(),
|
||||||
'preprocessedForm' => json_decode($vacancyWithForm->first()->forms->formStructure, true),
|
'preprocessedForm' => json_decode($vacancyWithForm->first()->forms->formStructure, true)
|
||||||
|
|
||||||
]);
|
]);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
abort(404, 'The application you\'re looking for could not be found or it is currently unavailable.');
|
abort(404, 'The application you\'re looking for could not be found or it is currently unavailable.');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function saveApplicationAnswers(Request $request, $vacancySlug)
|
public function saveApplicationAnswers(Request $request, $vacancySlug)
|
||||||
{
|
{
|
||||||
$vacancy = Vacancy::with('forms')->where('vacancySlug', $vacancySlug)->get();
|
$vacancy = Vacancy::with('forms')->where('vacancySlug', $vacancySlug)->get();
|
||||||
|
|
||||||
if ($vacancy->first()->vacancyCount == 0 || $vacancy->first()->vacancyStatus !== 'OPEN') {
|
if ($vacancy->first()->vacancyCount == 0 || $vacancy->first()->vacancyStatus !== 'OPEN')
|
||||||
$request->session()->flash('error', 'This application is unavailable.');
|
{
|
||||||
|
|
||||||
|
$request->session()->flash('error', 'This application is unavailable.');
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Log::info('Processing new application!');
|
Log::info('Processing new application!');
|
||||||
@ -123,11 +192,12 @@ class ApplicationController extends Controller
|
|||||||
|
|
||||||
Log::info('Built response & validator structure!');
|
Log::info('Built response & validator structure!');
|
||||||
|
|
||||||
if (! $responseValidation->get('validator')->fails()) {
|
if (!$responseValidation->get('validator')->fails())
|
||||||
|
{
|
||||||
$response = Response::create([
|
$response = Response::create([
|
||||||
'responseFormID' => $vacancy->first()->forms->id,
|
'responseFormID' => $vacancy->first()->forms->id,
|
||||||
'associatedVacancyID' => $vacancy->first()->id, // Since a form can be used by multiple vacancies, we can only know which specific vacancy this response ties to by using a vacancy ID
|
'associatedVacancyID' => $vacancy->first()->id, // Since a form can be used by multiple vacancies, we can only know which specific vacancy this response ties to by using a vacancy ID
|
||||||
'responseData' => $responseValidation->get('responseStructure'),
|
'responseData' => $responseValidation->get('responseStructure')
|
||||||
]);
|
]);
|
||||||
|
|
||||||
Log::info('Registered form response for user ' . Auth::user()->name . ' for vacancy ' . $vacancy->first()->vacancyName);
|
Log::info('Registered form response for user ' . Auth::user()->name . ' for vacancy ' . $vacancy->first()->vacancyName);
|
||||||
@ -140,18 +210,22 @@ class ApplicationController extends Controller
|
|||||||
|
|
||||||
Log::info('Submitted application for user ' . Auth::user()->name . ' with response ID' . $response->id);
|
Log::info('Submitted application for user ' . Auth::user()->name . ' with response ID' . $response->id);
|
||||||
|
|
||||||
foreach (User::all() as $user) {
|
foreach(User::all() as $user)
|
||||||
if ($user->hasRole('admin')) {
|
{
|
||||||
|
if ($user->hasRole('admin'))
|
||||||
|
{
|
||||||
$user->notify((new NewApplicant($application, $vacancy->first()))->delay(now()->addSeconds(10)));
|
$user->notify((new NewApplicant($application, $vacancy->first()))->delay(now()->addSeconds(10)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->session()->flash('success', 'Thank you for your application! It will be reviewed as soon as possible.');
|
$request->session()->flash('success', 'Thank you for your application! It will be reviewed as soon as possible.');
|
||||||
|
|
||||||
return redirect()->to(route('showUserApps'));
|
return redirect()->to(route('showUserApps'));
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
Log::warning('Application form for ' . Auth::user()->name . ' contained errors, resetting!');
|
Log::warning('Application form for ' . Auth::user()->name . ' contained errors, resetting!');
|
||||||
$request->session()->flash('error', 'There are one or more errors in your application. Please make sure none of your fields are empty, since they are all required.');
|
$request->session()->flash('error', 'There are one or more errors in your application. Please make sure none of your fields are empty, since they are all required.');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
@ -161,7 +235,8 @@ class ApplicationController extends Controller
|
|||||||
{
|
{
|
||||||
$this->authorize('update', Application::class);
|
$this->authorize('update', Application::class);
|
||||||
|
|
||||||
switch ($newStatus) {
|
switch ($newStatus)
|
||||||
|
{
|
||||||
case 'deny':
|
case 'deny':
|
||||||
|
|
||||||
event(new ApplicationDeniedEvent($application));
|
event(new ApplicationDeniedEvent($application));
|
||||||
@ -184,11 +259,13 @@ class ApplicationController extends Controller
|
|||||||
|
|
||||||
public function delete(Request $request, Application $application)
|
public function delete(Request $request, Application $application)
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->authorize('delete', $application);
|
$this->authorize('delete', $application);
|
||||||
$application->delete(); // observers will run, cleaning it up
|
$application->delete(); // observers will run, cleaning it up
|
||||||
|
|
||||||
$request->session()->flash('success', 'Application deleted. Comments, appointments and responses have also been deleted.');
|
$request->session()->flash('success', 'Application deleted. Comments, appointments and responses have also been deleted.');
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
43
app/Http/Controllers/AppointmentController.php
Executable file → Normal file
43
app/Http/Controllers/AppointmentController.php
Executable file → Normal file
@ -1,33 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Application;
|
use App\Application;
|
||||||
use App\Appointment;
|
|
||||||
use App\Http\Requests\SaveNotesRequest;
|
use App\Http\Requests\SaveNotesRequest;
|
||||||
use App\Notifications\ApplicationMoved;
|
|
||||||
use App\Notifications\AppointmentScheduled;
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use App\Appointment;
|
||||||
|
use App\Notifications\ApplicationMoved;
|
||||||
|
use App\Notifications\AppointmentScheduled;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
@ -39,7 +20,7 @@ class AppointmentController extends Controller
|
|||||||
'DISCORD',
|
'DISCORD',
|
||||||
'SKYPE',
|
'SKYPE',
|
||||||
'MEET',
|
'MEET',
|
||||||
'TEAMSPEAK',
|
'TEAMSPEAK'
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -56,14 +37,16 @@ class AppointmentController extends Controller
|
|||||||
]);
|
]);
|
||||||
$application->setStatus('STAGE_INTERVIEW_SCHEDULED');
|
$application->setStatus('STAGE_INTERVIEW_SCHEDULED');
|
||||||
|
|
||||||
|
|
||||||
Log::info('User ' . Auth::user()->name . ' has scheduled an appointment with ' . $application->user->name . ' for application ID' . $application->id, [
|
Log::info('User ' . Auth::user()->name . ' has scheduled an appointment with ' . $application->user->name . ' for application ID' . $application->id, [
|
||||||
'datetime' => $appointmentDate->toDateTimeString(),
|
'datetime' => $appointmentDate->toDateTimeString(),
|
||||||
'scheduled' => now(),
|
'scheduled' => now()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$application->user->notify(new AppointmentScheduled($appointment));
|
$application->user->notify(new AppointmentScheduled($appointment));
|
||||||
$request->session()->flash('success', 'Appointment successfully scheduled @ ' . $appointmentDate->toDateTimeString());
|
$request->session()->flash('success', 'Appointment successfully scheduled @ ' . $appointmentDate->toDateTimeString());
|
||||||
|
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,7 +56,7 @@ class AppointmentController extends Controller
|
|||||||
|
|
||||||
$validStatuses = [
|
$validStatuses = [
|
||||||
'SCHEDULED',
|
'SCHEDULED',
|
||||||
'CONCLUDED',
|
'CONCLUDED'
|
||||||
];
|
];
|
||||||
|
|
||||||
// NOTE: This is a little confusing, refactor
|
// NOTE: This is a little confusing, refactor
|
||||||
@ -83,25 +66,29 @@ class AppointmentController extends Controller
|
|||||||
$application->setStatus('STAGE_PEERAPPROVAL');
|
$application->setStatus('STAGE_PEERAPPROVAL');
|
||||||
$application->user->notify(new ApplicationMoved());
|
$application->user->notify(new ApplicationMoved());
|
||||||
|
|
||||||
$request->session()->flash('success', 'Interview finished! Staff members can now vote on it.');
|
|
||||||
|
|
||||||
|
$request->session()->flash('success', 'Interview finished! Staff members can now vote on it.');
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
// also updates
|
// also updates
|
||||||
public function saveNotes(SaveNotesRequest $request, Application $application)
|
public function saveNotes(SaveNotesRequest $request, Application $application)
|
||||||
{
|
{
|
||||||
if (! is_null($application)) {
|
if (!is_null($application))
|
||||||
|
{
|
||||||
$application->load('appointment');
|
$application->load('appointment');
|
||||||
|
|
||||||
$application->appointment->meetingNotes = $request->noteText;
|
$application->appointment->meetingNotes = $request->noteText;
|
||||||
$application->appointment->save();
|
$application->appointment->save();
|
||||||
|
|
||||||
$request->session()->flash('success', 'Meeting notes have been saved.');
|
$request->session()->flash('success', 'Meeting notes have been saved.');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'There\'s no appointment to save notes to!');
|
$request->session()->flash('error', 'There\'s no appointment to save notes to!');
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
20
app/Http/Controllers/Auth/ConfirmPasswordController.php
Executable file → Normal file
20
app/Http/Controllers/Auth/ConfirmPasswordController.php
Executable file → Normal file
@ -1,27 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
use Illuminate\Foundation\Auth\ConfirmsPasswords;
|
use Illuminate\Foundation\Auth\ConfirmsPasswords;
|
||||||
|
|
||||||
class ConfirmPasswordController extends Controller
|
class ConfirmPasswordController extends Controller
|
||||||
|
19
app/Http/Controllers/Auth/ForgotPasswordController.php
Executable file → Normal file
19
app/Http/Controllers/Auth/ForgotPasswordController.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
35
app/Http/Controllers/Auth/LoginController.php
Executable file → Normal file
35
app/Http/Controllers/Auth/LoginController.php
Executable file → Normal file
@ -1,28 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\User;
|
use App\User;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@ -66,15 +48,22 @@ class LoginController extends Controller
|
|||||||
{
|
{
|
||||||
$user = User::where('email', $request->email)->first();
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
if ($user) {
|
if ($user)
|
||||||
|
{
|
||||||
$isBanned = $user->isBanned();
|
$isBanned = $user->isBanned();
|
||||||
if ($isBanned) {
|
if ($isBanned)
|
||||||
|
{
|
||||||
return false;
|
return false;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return $this->originalAttemptLogin($request);
|
return $this->originalAttemptLogin($request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->originalAttemptLogin($request);
|
return $this->originalAttemptLogin($request);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
33
app/Http/Controllers/Auth/RegisterController.php
Executable file → Normal file
33
app/Http/Controllers/Auth/RegisterController.php
Executable file → Normal file
@ -1,32 +1,15 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Profile;
|
use App\Profile;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
use App\User;
|
use App\User;
|
||||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use function GuzzleHttp\Psr7\str;
|
||||||
|
|
||||||
class RegisterController extends Controller
|
class RegisterController extends Controller
|
||||||
{
|
{
|
||||||
@ -64,8 +47,10 @@ class RegisterController extends Controller
|
|||||||
{
|
{
|
||||||
$users = User::where('originalIP', \request()->ip())->get();
|
$users = User::where('originalIP', \request()->ip())->get();
|
||||||
|
|
||||||
foreach ($users as $user) {
|
foreach($users as $user)
|
||||||
if ($user && $user->isBanned()) {
|
{
|
||||||
|
if ($user && $user->isBanned())
|
||||||
|
{
|
||||||
abort(403, 'You do not have permission to access this page.');
|
abort(403, 'You do not have permission to access this page.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -87,7 +72,7 @@ class RegisterController extends Controller
|
|||||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
||||||
'password' => ['required', 'string', 'min:10', 'confirmed', 'regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$/'],
|
'password' => ['required', 'string', 'min:10', 'confirmed', 'regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$/'],
|
||||||
], [
|
], [
|
||||||
'uuid.required' => 'Please enter a valid (and Premium) Minecraft username! We do not support cracked users.',
|
'uuid.required' => 'Please enter a valid (and Premium) Minecraft username! We do not support cracked users.'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,19 +84,19 @@ class RegisterController extends Controller
|
|||||||
*/
|
*/
|
||||||
protected function create(array $data)
|
protected function create(array $data)
|
||||||
{
|
{
|
||||||
|
|
||||||
$user = User::create([
|
$user = User::create([
|
||||||
'uuid' => $data['uuid'],
|
'uuid' => $data['uuid'],
|
||||||
'name' => $data['name'],
|
'name' => $data['name'],
|
||||||
'email' => $data['email'],
|
'email' => $data['email'],
|
||||||
'password' => Hash::make($data['password']),
|
'password' => Hash::make($data['password']),
|
||||||
'originalIP' => request()->ip(),
|
'originalIP' => request()->ip()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// It's not the registration controller's concern to create a profile for the user,
|
// It's not the registration controller's concern to create a profile for the user,
|
||||||
// so this code has been moved to it's respective observer, following the separation of concerns pattern.
|
// so this code has been moved to it's respective observer, following the separation of concerns pattern.
|
||||||
|
|
||||||
$user->assignRole('user');
|
$user->assignRole('user');
|
||||||
|
|
||||||
return $user;
|
return $user;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
20
app/Http/Controllers/Auth/ResetPasswordController.php
Executable file → Normal file
20
app/Http/Controllers/Auth/ResetPasswordController.php
Executable file → Normal file
@ -1,27 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
use Illuminate\Foundation\Auth\ResetsPasswords;
|
use Illuminate\Foundation\Auth\ResetsPasswords;
|
||||||
|
|
||||||
class ResetPasswordController extends Controller
|
class ResetPasswordController extends Controller
|
||||||
|
22
app/Http/Controllers/Auth/TwofaController.php
Executable file → Normal file
22
app/Http/Controllers/Auth/TwofaController.php
Executable file → Normal file
@ -1,26 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Traits\AuthenticatesTwoFactor;
|
use App\Traits\AuthenticatesTwoFactor;
|
||||||
|
|
||||||
@ -28,5 +10,7 @@ class TwofaController extends Controller
|
|||||||
{
|
{
|
||||||
use AuthenticatesTwoFactor;
|
use AuthenticatesTwoFactor;
|
||||||
|
|
||||||
|
|
||||||
protected $redirectTo = '/dashboard';
|
protected $redirectTo = '/dashboard';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
20
app/Http/Controllers/Auth/VerificationController.php
Executable file → Normal file
20
app/Http/Controllers/Auth/VerificationController.php
Executable file → Normal file
@ -1,27 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
use Illuminate\Foundation\Auth\VerifiesEmails;
|
use Illuminate\Foundation\Auth\VerifiesEmails;
|
||||||
|
|
||||||
class VerificationController extends Controller
|
class VerificationController extends Controller
|
||||||
|
61
app/Http/Controllers/BanController.php
Executable file → Normal file
61
app/Http/Controllers/BanController.php
Executable file → Normal file
@ -1,48 +1,35 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Ban;
|
|
||||||
use App\Events\UserBannedEvent;
|
|
||||||
use App\Http\Requests\BanUserRequest;
|
|
||||||
use App\User;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use App\Ban;
|
||||||
|
use App\User;
|
||||||
|
use App\Events\UserBannedEvent;
|
||||||
|
use App\Http\Requests\BanUserRequest;
|
||||||
|
|
||||||
class BanController extends Controller
|
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, $user]);
|
||||||
|
|
||||||
if (is_null($user->bans)) {
|
if (is_null($user->bans))
|
||||||
|
{
|
||||||
|
|
||||||
$reason = $request->reason;
|
$reason = $request->reason;
|
||||||
$duration = strtolower($request->durationOperator);
|
$duration = strtolower($request->durationOperator);
|
||||||
$durationOperand = $request->durationOperand;
|
$durationOperand = $request->durationOperand;
|
||||||
|
|
||||||
$expiryDate = now();
|
$expiryDate = now();
|
||||||
|
|
||||||
if (! empty($duration)) {
|
if (!empty($duration))
|
||||||
switch ($duration) {
|
{
|
||||||
|
switch($duration)
|
||||||
|
{
|
||||||
case 'days':
|
case 'days':
|
||||||
$expiryDate->addDays($durationOperand);
|
$expiryDate->addDays($durationOperand);
|
||||||
break;
|
break;
|
||||||
@ -59,7 +46,9 @@ class BanController extends Controller
|
|||||||
$expiryDate->addYears($durationOperand);
|
$expiryDate->addYears($durationOperand);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
// Essentially permanent
|
// Essentially permanent
|
||||||
$expiryDate->addYears(5);
|
$expiryDate->addYears(5);
|
||||||
}
|
}
|
||||||
@ -68,27 +57,35 @@ class BanController extends Controller
|
|||||||
'userID' => $user->id,
|
'userID' => $user->id,
|
||||||
'reason' => $reason,
|
'reason' => $reason,
|
||||||
'bannedUntil' => $expiryDate->format('Y-m-d H:i:s'),
|
'bannedUntil' => $expiryDate->format('Y-m-d H:i:s'),
|
||||||
'userAgent' => 'Unknown',
|
'userAgent' => "Unknown",
|
||||||
'authorUserID' => Auth::user()->id,
|
'authorUserID' => Auth::user()->id
|
||||||
]);
|
]);
|
||||||
|
|
||||||
event(new UserBannedEvent($user, $ban));
|
event(new UserBannedEvent($user, $ban));
|
||||||
$request->session()->flash('success', 'User banned successfully! Ban ID: #' . $ban->id);
|
$request->session()->flash('success', 'User banned successfully! Ban ID: #' . $ban->id);
|
||||||
} else {
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'User already banned!');
|
$request->session()->flash('error', 'User already banned!');
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function delete(Request $request, User $user)
|
public function delete(Request $request, User $user)
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->authorize('delete', $user->bans);
|
$this->authorize('delete', $user->bans);
|
||||||
|
|
||||||
if (! is_null($user->bans)) {
|
if (!is_null($user->bans))
|
||||||
|
{
|
||||||
$user->bans->delete();
|
$user->bans->delete();
|
||||||
$request->session()->flash('success', 'User unbanned successfully!');
|
$request->session()->flash('success', 'User unbanned successfully!');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'This user isn\'t banned!');
|
$request->session()->flash('error', 'This user isn\'t banned!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
42
app/Http/Controllers/CommentController.php
Executable file → Normal file
42
app/Http/Controllers/CommentController.php
Executable file → Normal file
@ -1,34 +1,19 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Application;
|
|
||||||
use App\Comment;
|
|
||||||
use App\Http\Requests\NewCommentRequest;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use App\Http\Requests\NewCommentRequest;
|
||||||
|
|
||||||
|
use App\Comment;
|
||||||
|
use App\Application;
|
||||||
|
use App\Notifications\NewComment;
|
||||||
|
use App\User;
|
||||||
|
|
||||||
class CommentController extends Controller
|
class CommentController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@ -41,16 +26,21 @@ class CommentController extends Controller
|
|||||||
$comment = Comment::create([
|
$comment = Comment::create([
|
||||||
'authorID' => Auth::user()->id,
|
'authorID' => Auth::user()->id,
|
||||||
'applicationID' => $application->id,
|
'applicationID' => $application->id,
|
||||||
'text' => $request->comment,
|
'text' => $request->comment
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($comment) {
|
if ($comment)
|
||||||
|
{
|
||||||
|
|
||||||
$request->session()->flash('success', 'Comment posted! (:');
|
$request->session()->flash('success', 'Comment posted! (:');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'Something went wrong while posting your comment!');
|
$request->session()->flash('error', 'Something went wrong while posting your comment!');
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete(Request $request, Comment $comment)
|
public function delete(Request $request, Comment $comment)
|
||||||
@ -61,5 +51,7 @@ class CommentController extends Controller
|
|||||||
$request->session()->flash('success', 'Comment deleted!');
|
$request->session()->flash('success', 'Comment deleted!');
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
45
app/Http/Controllers/ContactController.php
Executable file → Normal file
45
app/Http/Controllers/ContactController.php
Executable file → Normal file
@ -1,40 +1,26 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Notifications\NewContact;
|
|
||||||
use App\User;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use GuzzleHttp;
|
||||||
|
use App\Notifications\NewContact;
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
|
||||||
class ContactController extends Controller
|
class ContactController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
protected $users;
|
protected $users;
|
||||||
|
|
||||||
|
|
||||||
public function __construct(User $users)
|
public function __construct(User $users)
|
||||||
{
|
{
|
||||||
$this->users = $users;
|
$this->users = $users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function create(Request $request)
|
public function create(Request $request)
|
||||||
{
|
{
|
||||||
$name = $request->name;
|
$name = $request->name;
|
||||||
@ -48,29 +34,32 @@ class ContactController extends Controller
|
|||||||
$verifyrequest = Http::asForm()->post(config('recaptcha.verify.apiurl'), [
|
$verifyrequest = Http::asForm()->post(config('recaptcha.verify.apiurl'), [
|
||||||
'secret' => config('recaptcha.keys.secret'),
|
'secret' => config('recaptcha.keys.secret'),
|
||||||
'response' => $challenge,
|
'response' => $challenge,
|
||||||
'remoteip' => $request->ip(),
|
'remoteip' => $request->ip()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
$response = json_decode($verifyrequest->getBody(), true);
|
$response = json_decode($verifyrequest->getBody(), true);
|
||||||
|
|
||||||
if (! $response['success']) {
|
if (!$response['success'])
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'Beep beep boop... Robot? Submission failed.');
|
$request->session()->flash('error', 'Beep beep boop... Robot? Submission failed.');
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (User::all() as $user) {
|
|
||||||
if ($user->hasRole('admin')) {
|
foreach(User::all() as $user)
|
||||||
|
{
|
||||||
|
if ($user->hasRole('admin'))
|
||||||
|
{
|
||||||
$user->notify(new NewContact(collect([
|
$user->notify(new NewContact(collect([
|
||||||
'message' => $msg,
|
'message' => $msg,
|
||||||
'ip' => $request->ip(),
|
'ip' => $request->ip(),
|
||||||
'email' => $email,
|
'email' => $email
|
||||||
])));
|
])));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->session()->flash('success', 'Message sent successfully! We usually respond within 48 hours.');
|
$request->session()->flash('success', 'Message sent successfully! We usually respond within 48 hours.');
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
19
app/Http/Controllers/Controller.php
Executable file → Normal file
19
app/Http/Controllers/Controller.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||||
|
30
app/Http/Controllers/DashboardController.php
Executable file → Normal file
30
app/Http/Controllers/DashboardController.php
Executable file → Normal file
@ -1,32 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Application;
|
use Illuminate\Http\Request;
|
||||||
use App\User;
|
|
||||||
use App\Vacancy;
|
use App\Vacancy;
|
||||||
|
use App\User;
|
||||||
|
use App\Ban;
|
||||||
|
use App\Application;
|
||||||
|
|
||||||
class DashboardController extends Controller
|
class DashboardController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$totalPeerReview = Application::where('applicationStatus', 'STAGE_PEERAPPROVAL')->get()->count();
|
$totalPeerReview = Application::where('applicationStatus', 'STAGE_PEERAPPROVAL')->get()->count();
|
||||||
@ -39,7 +23,9 @@ class DashboardController extends Controller
|
|||||||
'totalUserCount' => User::all()->count(),
|
'totalUserCount' => User::all()->count(),
|
||||||
'totalDenied' => $totalDenied,
|
'totalDenied' => $totalDenied,
|
||||||
'totalPeerReview' => $totalPeerReview,
|
'totalPeerReview' => $totalPeerReview,
|
||||||
'totalNewApplications' => $totalNewApplications,
|
'totalNewApplications' => $totalNewApplications
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
32
app/Http/Controllers/DevToolsController.php
Executable file → Normal file
32
app/Http/Controllers/DevToolsController.php
Executable file → Normal file
@ -1,37 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Application;
|
use App\Application;
|
||||||
use App\Events\ApplicationApprovedEvent;
|
use App\Events\ApplicationApprovedEvent;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class DevToolsController extends Controller
|
class DevToolsController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
// The use case for Laravel's gate and/or validation Requests is so tiny here that a full-blown policy would be overkill.
|
// The use case for Laravel's gate and/or validation Requests is so tiny here that a full-blown policy would be overkill.
|
||||||
protected function isolatedAuthorise()
|
protected function isolatedAuthorise()
|
||||||
{
|
{
|
||||||
if (! Auth::user()->can('admin.developertools.use')) {
|
if (!Auth::user()->can('admin.developertools.use'))
|
||||||
|
{
|
||||||
abort(403, 'You\'re not authorized to access this page.');
|
abort(403, 'You\'re not authorized to access this page.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -39,7 +23,6 @@ class DevToolsController extends Controller
|
|||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$this->isolatedAuthorise();
|
$this->isolatedAuthorise();
|
||||||
|
|
||||||
return view('dashboard.administration.devtools')
|
return view('dashboard.administration.devtools')
|
||||||
->with('applications', Application::where('applicationStatus', 'STAGE_PEERAPPROVAL')->get());
|
->with('applications', Application::where('applicationStatus', 'STAGE_PEERAPPROVAL')->get());
|
||||||
}
|
}
|
||||||
@ -49,11 +32,14 @@ class DevToolsController extends Controller
|
|||||||
$this->isolatedAuthorise();
|
$this->isolatedAuthorise();
|
||||||
$application = Application::find($request->application);
|
$application = Application::find($request->application);
|
||||||
|
|
||||||
if (! is_null($application)) {
|
if (!is_null($application))
|
||||||
|
{
|
||||||
event(new ApplicationApprovedEvent($application));
|
event(new ApplicationApprovedEvent($application));
|
||||||
|
|
||||||
$request->session()->flash('success', 'Event dispatched! Please check the debug logs for more info');
|
$request->session()->flash('success', 'Event dispatched! Please check the debug logs for more info');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'Application doesn\'t exist!');
|
$request->session()->flash('error', 'Application doesn\'t exist!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
64
app/Http/Controllers/FormController.php
Executable file → Normal file
64
app/Http/Controllers/FormController.php
Executable file → Normal file
@ -1,32 +1,17 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Form;
|
use App\Form;
|
||||||
use ContextAwareValidator;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
use ContextAwareValidator;
|
||||||
|
|
||||||
class FormController extends Controller
|
class FormController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$forms = Form::all();
|
$forms = Form::all();
|
||||||
@ -39,43 +24,34 @@ class FormController extends Controller
|
|||||||
public function showFormBuilder()
|
public function showFormBuilder()
|
||||||
{
|
{
|
||||||
$this->authorize('viewFormbuilder', Form::class);
|
$this->authorize('viewFormbuilder', Form::class);
|
||||||
|
|
||||||
return view('dashboard.administration.formbuilder');
|
return view('dashboard.administration.formbuilder');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function saveForm(Request $request)
|
public function saveForm(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->authorize('create', Form::class);
|
$this->authorize('create', Form::class);
|
||||||
$fields = $request->all();
|
$fields = $request->all();
|
||||||
|
|
||||||
if (count($fields) == 2) {
|
|
||||||
// form is probably empty, since forms with fields will alawys have more than 2 items
|
|
||||||
|
|
||||||
$request->session()->flash('error', 'Sorry, but you may not create empty forms.');
|
|
||||||
|
|
||||||
return redirect()->to(route('showForms'));
|
|
||||||
}
|
|
||||||
|
|
||||||
$contextValidation = ContextAwareValidator::getValidator($fields, true, true);
|
$contextValidation = ContextAwareValidator::getValidator($fields, true, true);
|
||||||
|
|
||||||
if (! $contextValidation->get('validator')->fails()) {
|
if (!$contextValidation->get('validator')->fails())
|
||||||
|
{
|
||||||
$storableFormStructure = $contextValidation->get('structure');
|
$storableFormStructure = $contextValidation->get('structure');
|
||||||
|
|
||||||
Form::create(
|
Form::create(
|
||||||
[
|
[
|
||||||
'formName' => $fields['formName'],
|
'formName' => $fields['formName'],
|
||||||
'formStructure' => $storableFormStructure,
|
'formStructure' => $storableFormStructure,
|
||||||
'formStatus' => 'ACTIVE',
|
'formStatus' => 'ACTIVE'
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
$request->session()->flash('success', 'Form created! You can now link this form to a vacancy.');
|
$request->session()->flash('success', 'Form created! You can now link this form to a vacancy.');
|
||||||
|
|
||||||
return redirect()->to(route('showForms'));
|
return redirect()->to(route('showForms'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->session()->flash('errors', $contextValidation->get('validator')->errors()->getMessages());
|
$request->session()->flash('errors', $contextValidation->get('validator')->errors()->getMessages());
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,19 +60,25 @@ class FormController extends Controller
|
|||||||
$this->authorize('delete', $form);
|
$this->authorize('delete', $form);
|
||||||
$deletable = true;
|
$deletable = true;
|
||||||
|
|
||||||
if (! is_null($form) && ! is_null($form->vacancies) && $form->vacancies->count() !== 0 || ! is_null($form->responses)) {
|
|
||||||
|
if (!is_null($form) && !is_null($form->vacancies) && $form->vacancies->count() !== 0 || !is_null($form->responses))
|
||||||
|
{
|
||||||
$deletable = false;
|
$deletable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($deletable) {
|
if ($deletable)
|
||||||
|
{
|
||||||
$form->delete();
|
$form->delete();
|
||||||
|
|
||||||
$request->session()->flash('success', 'Form deleted successfully.');
|
$request->session()->flash('success', 'Form deleted successfully.');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'You cannot delete this form because it\'s tied to one or more applications and ranks, or because it doesn\'t exist.');
|
$request->session()->flash('error', 'You cannot delete this form because it\'s tied to one or more applications and ranks, or because it doesn\'t exist.');
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function preview(Request $request, Form $form)
|
public function preview(Request $request, Form $form)
|
||||||
@ -126,7 +108,9 @@ class FormController extends Controller
|
|||||||
$contextValidation = ContextAwareValidator::getValidator($request->all(), true);
|
$contextValidation = ContextAwareValidator::getValidator($request->all(), true);
|
||||||
$this->authorize('update', $form);
|
$this->authorize('update', $form);
|
||||||
|
|
||||||
if (! $contextValidation->get('validator')->fails()) {
|
|
||||||
|
if (!$contextValidation->get('validator')->fails())
|
||||||
|
{
|
||||||
// Add the new structure into the form. New, subsquent fields will be identified by the "new" prefix
|
// Add the new structure into the form. New, subsquent fields will be identified by the "new" prefix
|
||||||
// This prefix doesn't actually change the app's behavior when it receives applications.
|
// This prefix doesn't actually change the app's behavior when it receives applications.
|
||||||
// Additionally, old applications won't of course display new and updated fields, because we can't travel into the past and get data for them
|
// Additionally, old applications won't of course display new and updated fields, because we can't travel into the past and get data for them
|
||||||
@ -134,10 +118,14 @@ class FormController extends Controller
|
|||||||
$form->save();
|
$form->save();
|
||||||
|
|
||||||
$request->session()->flash('success', 'Hooray! Your form was updated. New applications for it\'s vacancy will use it.');
|
$request->session()->flash('success', 'Hooray! Your form was updated. New applications for it\'s vacancy will use it.');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('errors', $contextValidation->get('validator')->errors()->getMessages());
|
$request->session()->flash('errors', $contextValidation->get('validator')->errors()->getMessages());
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->to(route('previewForm', ['form' => $form->id]));
|
return redirect()->to(route('previewForm', ['form' => $form->id]));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
23
app/Http/Controllers/HomeController.php
Executable file → Normal file
23
app/Http/Controllers/HomeController.php
Executable file → Normal file
@ -1,27 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Vacancy;
|
use App\Vacancy;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
class HomeController extends Controller
|
class HomeController extends Controller
|
||||||
{
|
{
|
||||||
@ -32,10 +15,12 @@ class HomeController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
|
||||||
$positions = Vacancy::where('vacancyStatus', 'OPEN')
|
$positions = Vacancy::where('vacancyStatus', 'OPEN')
|
||||||
->where('vacancyCount', '<>', 0)
|
->where('vacancyCount', '<>', 0)
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|
||||||
return view('home')
|
return view('home')
|
||||||
->with('positions', $positions);
|
->with('positions', $positions);
|
||||||
}
|
}
|
||||||
|
50
app/Http/Controllers/OptionsController.php
Executable file → Normal file
50
app/Http/Controllers/OptionsController.php
Executable file → Normal file
@ -1,28 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Facades\Options;
|
use App\Facades\Options;
|
||||||
use App\Options as Option;
|
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;
|
use Illuminate\Support\Facades\Log;
|
||||||
@ -39,32 +21,39 @@ class OptionsController extends Controller
|
|||||||
// TODO: Obtain this from the facade
|
// TODO: Obtain this from the facade
|
||||||
$options = Option::all();
|
$options = Option::all();
|
||||||
|
|
||||||
|
|
||||||
return view('dashboard.administration.settings')
|
return view('dashboard.administration.settings')
|
||||||
->with('options', $options);
|
->with('options', $options);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function saveSettings(Request $request)
|
public function saveSettings(Request $request)
|
||||||
{
|
{
|
||||||
if (Auth::user()->can('admin.settings.edit')) {
|
if (Auth::user()->can('admin.settings.edit'))
|
||||||
|
{
|
||||||
Log::debug('Updating application options', [
|
Log::debug('Updating application options', [
|
||||||
'ip' => $request->ip(),
|
'ip' => $request->ip(),
|
||||||
'ua' => $request->userAgent(),
|
'ua' => $request->userAgent(),
|
||||||
'username' => Auth::user()->username,
|
'username' => Auth::user()->username
|
||||||
]);
|
]);
|
||||||
foreach ($request->all() as $optionName => $option) {
|
foreach($request->all() as $optionName => $option)
|
||||||
try {
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
Log::debug('Going through option ' . $optionName);
|
Log::debug('Going through option ' . $optionName);
|
||||||
if (Options::optionExists($optionName)) {
|
if (Options::optionExists($optionName))
|
||||||
|
{
|
||||||
Log::debug('Option exists, updating to new values', [
|
Log::debug('Option exists, updating to new values', [
|
||||||
'opt' => $optionName,
|
'opt' => $optionName,
|
||||||
'new_value' => $option,
|
'new_value' => $option
|
||||||
]);
|
]);
|
||||||
Options::changeOption($optionName, $option);
|
Options::changeOption($optionName, $option);
|
||||||
}
|
}
|
||||||
} catch (\Exception $ex) {
|
}
|
||||||
|
catch(\Exception $ex)
|
||||||
|
{
|
||||||
Log::error('Unable to update options!', [
|
Log::error('Unable to update options!', [
|
||||||
'msg' => $ex->getMessage(),
|
'msg' => $ex->getMessage(),
|
||||||
'trace' => $ex->getTraceAsString(),
|
'trace' => $ex->getTraceAsString()
|
||||||
]);
|
]);
|
||||||
report($ex);
|
report($ex);
|
||||||
|
|
||||||
@ -73,10 +62,13 @@ class OptionsController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! isset($errorCond)) {
|
if (!isset($errorCond))
|
||||||
|
{
|
||||||
$request->session()->flash('success', 'Settings saved successfully!');
|
$request->session()->flash('success', 'Settings saved successfully!');
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'You do not have permission to update this resource.');
|
$request->session()->flash('error', 'You do not have permission to update this resource.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
62
app/Http/Controllers/ProfileController.php
Executable file → Normal file
62
app/Http/Controllers/ProfileController.php
Executable file → Normal file
@ -1,29 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Facades\IP;
|
|
||||||
use App\Http\Requests\ProfileSave;
|
use App\Http\Requests\ProfileSave;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use App\Profile;
|
||||||
use App\User;
|
use App\User;
|
||||||
|
use App\Facades\IP;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
@ -31,15 +14,18 @@ use Spatie\Permission\Models\Role;
|
|||||||
|
|
||||||
class ProfileController extends Controller
|
class ProfileController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
|
||||||
return view('dashboard.user.directory')
|
return view('dashboard.user.directory')
|
||||||
->with('users', User::with('profile', 'bans')->paginate(9));
|
->with('users', User::with('profile', 'bans')->paginate(9));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function showProfile()
|
public function showProfile()
|
||||||
{
|
{
|
||||||
$socialLinks = Auth::user()->profile->socialLinks ?? '[]';
|
|
||||||
|
$socialLinks = Auth::user()->profile->socialLinks ?? "[]";
|
||||||
$socialMediaProfiles = json_decode($socialLinks, true);
|
$socialMediaProfiles = json_decode($socialLinks, true);
|
||||||
|
|
||||||
return view('dashboard.user.profile.userprofile')
|
return view('dashboard.user.profile.userprofile')
|
||||||
@ -50,11 +36,13 @@ class ProfileController extends Controller
|
|||||||
'insta' => $socialMediaProfiles['links']['insta'] ?? 'UpdateMe',
|
'insta' => $socialMediaProfiles['links']['insta'] ?? 'UpdateMe',
|
||||||
'discord' => $socialMediaProfiles['links']['discord'] ?? 'UpdateMe#12345',
|
'discord' => $socialMediaProfiles['links']['discord'] ?? 'UpdateMe#12345',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Route model binding
|
// Route model binding
|
||||||
public function showSingleProfile(Request $request, User $user)
|
public function showSingleProfile(Request $request, User $user)
|
||||||
{
|
{
|
||||||
|
|
||||||
$socialMediaProfiles = json_decode($user->profile->socialLinks, true);
|
$socialMediaProfiles = json_decode($user->profile->socialLinks, true);
|
||||||
$createdDate = Carbon::parse($user->created_at);
|
$createdDate = Carbon::parse($user->created_at);
|
||||||
|
|
||||||
@ -63,15 +51,21 @@ class ProfileController extends Controller
|
|||||||
|
|
||||||
$roleList = [];
|
$roleList = [];
|
||||||
|
|
||||||
foreach ($systemRoles as $role) {
|
|
||||||
if (in_array($role, $userRoles)) {
|
foreach($systemRoles as $role)
|
||||||
|
{
|
||||||
|
if (in_array($role, $userRoles))
|
||||||
|
{
|
||||||
$roleList[$role] = true;
|
$roleList[$role] = true;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$roleList[$role] = false;
|
$roleList[$role] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Auth::user()->is($user) || Auth::user()->can('profiles.view.others')) {
|
if (Auth::user()->is($user) || Auth::user()->can('profiles.view.others'))
|
||||||
|
{
|
||||||
return view('dashboard.user.profile.displayprofile')
|
return view('dashboard.user.profile.displayprofile')
|
||||||
->with([
|
->with([
|
||||||
'profile' => $user->profile,
|
'profile' => $user->profile,
|
||||||
@ -79,13 +73,16 @@ class ProfileController extends Controller
|
|||||||
'twitter' => $socialMediaProfiles['links']['twitter'] ?? 'UpdateMe',
|
'twitter' => $socialMediaProfiles['links']['twitter'] ?? 'UpdateMe',
|
||||||
'insta' => $socialMediaProfiles['links']['insta'] ?? 'UpdateMe',
|
'insta' => $socialMediaProfiles['links']['insta'] ?? 'UpdateMe',
|
||||||
'discord' => $socialMediaProfiles['links']['discord'] ?? 'UpdateMe#12345',
|
'discord' => $socialMediaProfiles['links']['discord'] ?? 'UpdateMe#12345',
|
||||||
'since' => $createdDate->englishMonth.' '.$createdDate->year,
|
'since' => $createdDate->englishMonth . " " . $createdDate->year,
|
||||||
'ipInfo' => IP::lookup($user->originalIP),
|
'ipInfo' => IP::lookup($user->originalIP),
|
||||||
'roles' => $roleList,
|
'roles' => $roleList
|
||||||
]);
|
]);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
abort(403, 'You cannot view someone else\'s profile.');
|
abort(403, 'You cannot view someone else\'s profile.');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function saveProfile(ProfileSave $request)
|
public function saveProfile(ProfileSave $request)
|
||||||
@ -93,8 +90,10 @@ class ProfileController extends Controller
|
|||||||
$profile = User::find(Auth::user()->id)->profile;
|
$profile = User::find(Auth::user()->id)->profile;
|
||||||
$social = [];
|
$social = [];
|
||||||
|
|
||||||
if (! is_null($profile)) {
|
if (!is_null($profile))
|
||||||
switch ($request->avatarPref) {
|
{
|
||||||
|
switch ($request->avatarPref)
|
||||||
|
{
|
||||||
case 'MOJANG':
|
case 'MOJANG':
|
||||||
$avatarPref = 'crafatar';
|
$avatarPref = 'crafatar';
|
||||||
|
|
||||||
@ -118,8 +117,11 @@ class ProfileController extends Controller
|
|||||||
$newProfile = $profile->save();
|
$newProfile = $profile->save();
|
||||||
|
|
||||||
$request->session()->flash('success', 'Profile settings saved successfully.');
|
$request->session()->flash('success', 'Profile settings saved successfully.');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
21
app/Http/Controllers/ResponseController.php
Executable file → Normal file
21
app/Http/Controllers/ResponseController.php
Executable file → Normal file
@ -1,26 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class ResponseController extends Controller
|
class ResponseController extends Controller
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
21
app/Http/Controllers/StaffProfileController.php
Executable file → Normal file
21
app/Http/Controllers/StaffProfileController.php
Executable file → Normal file
@ -1,26 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class StaffProfileController extends Controller
|
class StaffProfileController extends Controller
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
@ -1,243 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use App\Http\Requests\EditTeamRequest;
|
|
||||||
use App\Http\Requests\NewTeamRequest;
|
|
||||||
use App\Http\Requests\SendInviteRequest;
|
|
||||||
use App\Mail\InviteToTeam;
|
|
||||||
use App\Team;
|
|
||||||
use App\User;
|
|
||||||
use App\Vacancy;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\Mail;
|
|
||||||
use Mpociot\Teamwork\Exceptions\UserNotInTeamException;
|
|
||||||
use Mpociot\Teamwork\Facades\Teamwork;
|
|
||||||
use Mpociot\Teamwork\TeamInvite;
|
|
||||||
|
|
||||||
class TeamController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function index()
|
|
||||||
{
|
|
||||||
$this->authorize('index');
|
|
||||||
|
|
||||||
$teams = Team::with('users.roles')->get();
|
|
||||||
|
|
||||||
return view('dashboard.teams.teams')
|
|
||||||
->with('teams', $teams);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function store(NewTeamRequest $request)
|
|
||||||
{
|
|
||||||
$this->authorize('create');
|
|
||||||
|
|
||||||
$team = Team::create([
|
|
||||||
'name' => $request->teamName,
|
|
||||||
'owner_id' => Auth::user()->id,
|
|
||||||
]);
|
|
||||||
|
|
||||||
Auth::user()->teams()->attach($team->id);
|
|
||||||
|
|
||||||
$request->session()->flash('success', 'Team successfully created.');
|
|
||||||
|
|
||||||
return redirect()->back();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function edit(Team $team)
|
|
||||||
{
|
|
||||||
$this->authorize('update', $team);
|
|
||||||
|
|
||||||
return view('dashboard.teams.edit-team')
|
|
||||||
->with('team', $team)
|
|
||||||
->with('users', User::all())
|
|
||||||
->with('vacancies', Vacancy::with('teams')->get()->all());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param int $id
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function update(EditTeamRequest $request, Team $team)
|
|
||||||
{
|
|
||||||
$this->authorize('update', $team);
|
|
||||||
|
|
||||||
|
|
||||||
$team->description = $request->teamDescription;
|
|
||||||
$team->openJoin = $request->joinType;
|
|
||||||
|
|
||||||
$team->save();
|
|
||||||
|
|
||||||
$request->session()->flash('success', 'Team edited successfully.');
|
|
||||||
|
|
||||||
return redirect()->to(route('teams.index'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function destroy($id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
public function invite(SendInviteRequest $request, Team $team)
|
|
||||||
{
|
|
||||||
$this->authorize('invite', $team);
|
|
||||||
|
|
||||||
$user = User::findOrFail($request->user);
|
|
||||||
|
|
||||||
if (! $team->openJoin) {
|
|
||||||
if (! Teamwork::hasPendingInvite($user->email, $team)) {
|
|
||||||
Teamwork::inviteToTeam($user, $team, function (TeamInvite $invite) use ($user) {
|
|
||||||
Mail::to($user)->send(new InviteToTeam($invite));
|
|
||||||
});
|
|
||||||
|
|
||||||
$request->session()->flash('success', 'Invite sent! They can now accept or deny it.');
|
|
||||||
} else {
|
|
||||||
$request->session()->flash('error', 'This user has already been invited.');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$request->session()->flash('error', 'You can\'t invite users to public teams.');
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->back();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function processInviteAction(Request $request, $action, $token)
|
|
||||||
{
|
|
||||||
switch ($action) {
|
|
||||||
case 'accept':
|
|
||||||
|
|
||||||
$invite = Teamwork::getInviteFromAcceptToken($token);
|
|
||||||
|
|
||||||
if ($invite && $invite->user->is(Auth::user())) {
|
|
||||||
Teamwork::acceptInvite($invite);
|
|
||||||
$request->session()->flash('success', 'Invite accepted! You have now joined '.$invite->team->name.'.');
|
|
||||||
} else {
|
|
||||||
$request->session()->flash('error', 'Invalid or expired invite URL.');
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'deny':
|
|
||||||
|
|
||||||
$invite = Teamwork::getInviteFromDenyToken($token);
|
|
||||||
|
|
||||||
if ($invite && $invite->user->is(Auth::user())) {
|
|
||||||
Teamwork::denyInvite($invite);
|
|
||||||
$request->session()->flash('success', 'Invite denied! Ask for another invite if this isn\'t what you meant.');
|
|
||||||
} else {
|
|
||||||
$request->session()->flash('error', 'Invalid or expired invite URL.');
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
$request->session()->flash('error', 'Sorry, but the invite URL you followed was malformed. Try asking for another invite, or submit a bug report.');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// This page will show the user's current teams
|
|
||||||
return redirect()->to(route('teams.index'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function switchTeam(Request $request, Team $team)
|
|
||||||
{
|
|
||||||
$this->authorize('switchTeam', $team);
|
|
||||||
|
|
||||||
try {
|
|
||||||
Auth::user()->switchTeam($team);
|
|
||||||
|
|
||||||
$request->session()->flash('success', 'Switched teams! Your team dashboard will now use this context.');
|
|
||||||
} catch (UserNotInTeamException $ex) {
|
|
||||||
$request->session()->flash('error', 'You can\'t switch to a team you don\'t belong to.');
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->back();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Since it's a separate form, we shouldn't use the same update method
|
|
||||||
public function assignVacancies(Request $request, Team $team)
|
|
||||||
{
|
|
||||||
$this->authorize('update', $team);
|
|
||||||
|
|
||||||
// P.S. To future developers
|
|
||||||
// This method gave me a lot of trouble lol. It's hard to write code when you're half asleep.
|
|
||||||
// There may be an n+1 query in the view and I don't think there's a way to avoid that without writing a lot of extra code.
|
|
||||||
|
|
||||||
$requestVacancies = $request->assocVacancies;
|
|
||||||
$currentVacancies = $team->vacancies->pluck('id')->all();
|
|
||||||
|
|
||||||
if (is_null($requestVacancies)) {
|
|
||||||
foreach ($team->vacancies as $vacancy) {
|
|
||||||
$team->vacancies()->detach($vacancy->id);
|
|
||||||
}
|
|
||||||
|
|
||||||
$request->session()->flash('success', 'Removed all vacancy associations.');
|
|
||||||
|
|
||||||
return redirect()->back();
|
|
||||||
}
|
|
||||||
|
|
||||||
$vacancyDiff = array_diff($requestVacancies, $currentVacancies);
|
|
||||||
$deselectedDiff = array_diff($currentVacancies, $requestVacancies);
|
|
||||||
|
|
||||||
if (! empty($vacancyDiff) || ! empty($deselectedDiff)) {
|
|
||||||
foreach ($vacancyDiff as $selectedVacancy) {
|
|
||||||
$team->vacancies()->attach($selectedVacancy);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($deselectedDiff as $deselectedVacancy) {
|
|
||||||
$team->vacancies()->detach($deselectedVacancy);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$team->vacancies()->attach($requestVacancies);
|
|
||||||
}
|
|
||||||
|
|
||||||
$request->session()->flash('success', 'Assignments changed successfully.');
|
|
||||||
|
|
||||||
return redirect()->back();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,152 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
// Most of these namespaces have no effect on the code, however, they're used by IDEs so they can resolve return types and for PHPDocumentor as well
|
|
||||||
|
|
||||||
|
|
||||||
use App\TeamFile;
|
|
||||||
use App\Http\Requests\UploadFileRequest;
|
|
||||||
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\Storage;
|
|
||||||
use League\Flysystem\FileNotFoundException;
|
|
||||||
// Documentation-purpose namespaces
|
|
||||||
use Illuminate\Contracts\Foundation\Application;
|
|
||||||
use Illuminate\Contts\View\Factory;
|
|
||||||
use Illuminate\Contracts\View\View;
|
|
||||||
use Illuminate\Http\RedirectResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TeamFileController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
* @return Application|Factory|View|Response
|
|
||||||
*/
|
|
||||||
public function index(Request $request)
|
|
||||||
{
|
|
||||||
$this->authorize('index');
|
|
||||||
|
|
||||||
if (is_null(Auth::user()->currentTeam))
|
|
||||||
{
|
|
||||||
$request->session()->flash('error', 'Please choose a team before viewing it\'s files.');
|
|
||||||
return redirect()->to(route('teams.index'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('dashboard.teams.team-files')
|
|
||||||
->with('files', TeamFile::with('team', 'uploader')->paginate(6));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*
|
|
||||||
* @param UploadFileRequest $request
|
|
||||||
* @return RedirectResponse
|
|
||||||
*/
|
|
||||||
public function store(UploadFileRequest $request)
|
|
||||||
{
|
|
||||||
$this->authorize('store');
|
|
||||||
|
|
||||||
$upload = $request->file('file');
|
|
||||||
|
|
||||||
$file = $upload->store('uploads');
|
|
||||||
$originalFileName = $upload->getClientOriginalName();
|
|
||||||
$originalFileExtension = $upload->extension();
|
|
||||||
$originalFileSize = $upload->getSize();
|
|
||||||
|
|
||||||
$fileEntry = TeamFile::create([
|
|
||||||
'uploaded_by' => Auth::user()->id,
|
|
||||||
'team_id' => Auth::user()->currentTeam->id,
|
|
||||||
'name' => $originalFileName,
|
|
||||||
'caption' => $request->caption,
|
|
||||||
'description' => $request->description,
|
|
||||||
'fs_location' => $file,
|
|
||||||
'extension' => $originalFileExtension,
|
|
||||||
'size' => $originalFileSize
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($fileEntry && !is_bool($file))
|
|
||||||
{
|
|
||||||
$request->session()->flash('success', 'File uploaded successfully!');
|
|
||||||
return redirect()->back();
|
|
||||||
}
|
|
||||||
|
|
||||||
$request->session()->flash('error', 'There was an unknown error whilst trying to upload your file.');
|
|
||||||
return redirect()->back();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function download(Request $request, TeamFile $teamFile)
|
|
||||||
{
|
|
||||||
$this->authorize('download');
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
return Storage::download($teamFile->fs_location, $teamFile->name);
|
|
||||||
}
|
|
||||||
catch (FileNotFoundException $ex)
|
|
||||||
{
|
|
||||||
$request->session()->flash('error', 'Sorry, but the requested file could not be found in storage. Sometimes, files may be physically deleted by admins, but not from the app\'s database.');
|
|
||||||
return redirect()->back();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*
|
|
||||||
* @param \App\TeamFile $teamFile
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function edit(TeamFile $teamFile)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param \App\TeamFile $teamFile
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function update(Request $request, TeamFile $teamFile)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
* @param \App\TeamFile $teamFile
|
|
||||||
* @return RedirectResponse
|
|
||||||
*/
|
|
||||||
public function destroy(Request $request, TeamFile $teamFile)
|
|
||||||
{
|
|
||||||
$this->authorize('delete');
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Storage::delete($teamFile->fs_location);
|
|
||||||
$teamFile->delete();
|
|
||||||
|
|
||||||
$request->session()->flash('success', 'File deleted successfully.');
|
|
||||||
}
|
|
||||||
catch (\Exception $ex)
|
|
||||||
{
|
|
||||||
$request->session()->flash('error', 'There was an error deleting the file: ' . $ex->getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->back();
|
|
||||||
}
|
|
||||||
}
|
|
166
app/Http/Controllers/UserController.php
Executable file → Normal file
166
app/Http/Controllers/UserController.php
Executable file → Normal file
@ -1,49 +1,33 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Ban;
|
|
||||||
use App\Http\Requests\Add2FASecretRequest;
|
|
||||||
use App\Http\Requests\ChangeEmailRequest;
|
use App\Http\Requests\ChangeEmailRequest;
|
||||||
use App\Http\Requests\ChangePasswordRequest;
|
use App\Http\Requests\ChangePasswordRequest;
|
||||||
use App\Http\Requests\DeleteUserRequest;
|
|
||||||
use App\Http\Requests\FlushSessionsRequest;
|
use App\Http\Requests\FlushSessionsRequest;
|
||||||
use App\Http\Requests\Remove2FASecretRequest;
|
use App\Http\Requests\DeleteUserRequest;
|
||||||
use App\Http\Requests\SearchPlayerRequest;
|
use App\Http\Requests\SearchPlayerRequest;
|
||||||
use App\Http\Requests\UpdateUserRequest;
|
use App\Http\Requests\UpdateUserRequest;
|
||||||
use App\Notifications\ChangedPassword;
|
use App\Http\Requests\Add2FASecretRequest;
|
||||||
use App\Notifications\EmailChanged;
|
use App\Http\Requests\Remove2FASecretRequest;
|
||||||
use App\Traits\ReceivesAccountTokens;
|
|
||||||
use App\User;
|
use App\User;
|
||||||
use Google2FA;
|
use App\Ban;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use App\Facades\UUID;
|
||||||
|
use App\Notifications\EmailChanged;
|
||||||
|
use App\Notifications\ChangedPassword;
|
||||||
use Spatie\Permission\Models\Role;
|
use Spatie\Permission\Models\Role;
|
||||||
|
|
||||||
|
use Google2FA;
|
||||||
|
|
||||||
class UserController extends Controller
|
class UserController extends Controller
|
||||||
{
|
{
|
||||||
use ReceivesAccountTokens;
|
|
||||||
|
|
||||||
public function showStaffMembers()
|
public function showStaffMembers()
|
||||||
{
|
{
|
||||||
@ -52,20 +36,24 @@ class UserController extends Controller
|
|||||||
$staffRoles = [
|
$staffRoles = [
|
||||||
'reviewer',
|
'reviewer',
|
||||||
'hiringManager',
|
'hiringManager',
|
||||||
'admin',
|
'admin'
|
||||||
]; // TODO: Un-hardcode this, move to config/roles.php
|
]; // TODO: Un-hardcode this, move to config/roles.php
|
||||||
$users = User::with('roles')->get();
|
$users = User::with('roles')->get();
|
||||||
$staffMembers = collect([]);
|
$staffMembers = collect([]);
|
||||||
|
|
||||||
foreach ($users as $user) {
|
foreach($users as $user)
|
||||||
if (empty($user->roles)) {
|
{
|
||||||
|
if (empty($user->roles))
|
||||||
|
{
|
||||||
Log::debug($user->role->name);
|
Log::debug($user->role->name);
|
||||||
Log::debug('Staff list: User without role detected; Ignoring');
|
Log::debug('Staff list: User without role detected; Ignoring');
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($user->roles as $role) {
|
foreach($user->roles as $role)
|
||||||
if (in_array($role->name, $staffRoles)) {
|
{
|
||||||
|
if (in_array($role->name, $staffRoles))
|
||||||
|
{
|
||||||
$staffMembers->push($user);
|
$staffMembers->push($user);
|
||||||
continue 2; // Skip directly to the next user instead of comparing more roles for the current user
|
continue 2; // Skip directly to the next user instead of comparing more roles for the current user
|
||||||
}
|
}
|
||||||
@ -74,7 +62,7 @@ class UserController extends Controller
|
|||||||
|
|
||||||
return view('dashboard.administration.staff-members')
|
return view('dashboard.administration.staff-members')
|
||||||
->with([
|
->with([
|
||||||
'users' => $staffMembers,
|
'users' => $staffMembers
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,9 +73,11 @@ class UserController extends Controller
|
|||||||
$users = User::with('roles')->get();
|
$users = User::with('roles')->get();
|
||||||
$players = collect([]);
|
$players = collect([]);
|
||||||
|
|
||||||
foreach ($users as $user) {
|
foreach($users as $user)
|
||||||
|
{
|
||||||
// TODO: Might be problematic if we don't check if the role is user
|
// TODO: Might be problematic if we don't check if the role is user
|
||||||
if (count($user->roles) == 1) {
|
if (count($user->roles) == 1)
|
||||||
|
{
|
||||||
$players->push($user);
|
$players->push($user);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -95,10 +85,11 @@ class UserController extends Controller
|
|||||||
return view('dashboard.administration.players')
|
return view('dashboard.administration.players')
|
||||||
->with([
|
->with([
|
||||||
'users' => $players,
|
'users' => $players,
|
||||||
'bannedUserCount' => Ban::all()->count(),
|
'bannedUserCount' => Ban::all()->count()
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function showPlayersLike(SearchPlayerRequest $request)
|
public function showPlayersLike(SearchPlayerRequest $request)
|
||||||
{
|
{
|
||||||
$this->authorize('viewPlayers', User::class);
|
$this->authorize('viewPlayers', User::class);
|
||||||
@ -109,17 +100,18 @@ class UserController extends Controller
|
|||||||
->orWhere('email', 'LIKE', "%{$searchTerm}%")
|
->orWhere('email', 'LIKE', "%{$searchTerm}%")
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
if (! $matchingUsers->isEmpty()) {
|
if (!$matchingUsers->isEmpty())
|
||||||
$request->session()->flash('success', 'There were '.$matchingUsers->count().' user(s) matching your search.');
|
{ $request->session()->flash('success', 'There were ' . $matchingUsers->count() . ' user(s) matching your search.');
|
||||||
|
|
||||||
return view('dashboard.administration.players')
|
return view('dashboard.administration.players')
|
||||||
->with([
|
->with([
|
||||||
'users' => $matchingUsers,
|
'users' => $matchingUsers,
|
||||||
'bannedUserCount' => Ban::all()->count(),
|
'bannedUserCount' => Ban::all()->count()
|
||||||
]);
|
]);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'Your search term did not return any results.');
|
$request->session()->flash('error', 'Your search term did not return any results.');
|
||||||
|
|
||||||
return redirect(route('registeredPlayerList'));
|
return redirect(route('registeredPlayerList'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -128,10 +120,14 @@ class UserController extends Controller
|
|||||||
{
|
{
|
||||||
$QRCode = null;
|
$QRCode = null;
|
||||||
|
|
||||||
if (! $request->user()->has2FA()) {
|
if (!$request->user()->has2FA())
|
||||||
if ($request->session()->has('twofaAttemptFailed')) {
|
{
|
||||||
|
if ($request->session()->has('twofaAttemptFailed'))
|
||||||
|
{
|
||||||
$twoFactorSecret = $request->session()->get('current2FA');
|
$twoFactorSecret = $request->session()->get('current2FA');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$twoFactorSecret = Google2FA::generateSecretKey(32, '');
|
$twoFactorSecret = Google2FA::generateSecretKey(32, '');
|
||||||
$request->session()->put('current2FA', $twoFactorSecret);
|
$request->session()->put('current2FA', $twoFactorSecret);
|
||||||
}
|
}
|
||||||
@ -148,6 +144,7 @@ class UserController extends Controller
|
|||||||
->with('twofaQRCode', $QRCode);
|
->with('twofaQRCode', $QRCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function flushSessions(FlushSessionsRequest $request)
|
public function flushSessions(FlushSessionsRequest $request)
|
||||||
{
|
{
|
||||||
// TODO: Move all log calls to a listener, which binds to an event fired by each significant event, such as this one
|
// TODO: Move all log calls to a listener, which binds to an event fired by each significant event, such as this one
|
||||||
@ -158,11 +155,10 @@ class UserController extends Controller
|
|||||||
[
|
[
|
||||||
'originIPAddress' => $request->ip(),
|
'originIPAddress' => $request->ip(),
|
||||||
'userID' => Auth::user()->id,
|
'userID' => Auth::user()->id,
|
||||||
'timestamp' => now(),
|
'timestamp' => now()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$request->session()->flash('success', 'Successfully logged out other devices. Remember to change your password if you think you\'ve been compromised.');
|
$request->session()->flash('success', 'Successfully logged out other devices. Remember to change your password if you think you\'ve been compromised.');
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,62 +166,75 @@ class UserController extends Controller
|
|||||||
{
|
{
|
||||||
$user = User::find(Auth::user()->id);
|
$user = User::find(Auth::user()->id);
|
||||||
|
|
||||||
if (! is_null($user)) {
|
if (!is_null($user))
|
||||||
|
{
|
||||||
$user->password = Hash::make($request->newPassword);
|
$user->password = Hash::make($request->newPassword);
|
||||||
$user->save();
|
$user->save();
|
||||||
|
|
||||||
Log::info('User ' . $user->name . ' has changed their password', [
|
Log::info('User ' . $user->name . ' has changed their password', [
|
||||||
'originIPAddress' => $request->ip(),
|
'originIPAddress' => $request->ip(),
|
||||||
'userID' => $user->id,
|
'userID' => $user->id,
|
||||||
'timestamp' => now(),
|
'timestamp' => now()
|
||||||
]);
|
]);
|
||||||
$user->notify(new ChangedPassword());
|
$user->notify(new ChangedPassword());
|
||||||
|
|
||||||
Auth::logout();
|
Auth::logout();
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function changeEmail(ChangeEmailRequest $request)
|
public function changeEmail(ChangeEmailRequest $request)
|
||||||
{
|
{
|
||||||
$user = User::find(Auth::user()->id);
|
$user = User::find(Auth::user()->id);
|
||||||
|
|
||||||
if (! is_null($user)) {
|
if (!is_null($user))
|
||||||
|
{
|
||||||
$user->email = $request->newEmail;
|
$user->email = $request->newEmail;
|
||||||
$user->save();
|
$user->save();
|
||||||
|
|
||||||
Log::notice('User ' . $user->name . ' has just changed their contact email address', [
|
Log::notice('User ' . $user->name . ' has just changed their contact email address', [
|
||||||
'originIPAddress' => $request->ip(),
|
'originIPAddress' => $request->ip(),
|
||||||
'userID' => $user->id,
|
'userID' => $user->id,
|
||||||
'timestamp' => now(),
|
'timestamp' => now()
|
||||||
]);
|
]);
|
||||||
$user->notify(new EmailChanged());
|
$user->notify(new EmailChanged());
|
||||||
|
|
||||||
$request->session()->flash('success', 'Your email address has been changed!');
|
$request->session()->flash('success', 'Your email address has been changed!');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'There has been an error whilst trying to update your account. Please contact administrators.');
|
$request->session()->flash('error', 'There has been an error whilst trying to update your account. Please contact administrators.');
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function delete(DeleteUserRequest $request, User $user)
|
public function delete(DeleteUserRequest $request, User $user)
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->authorize('delete', $user);
|
$this->authorize('delete', $user);
|
||||||
|
|
||||||
if ($request->confirmPrompt == 'DELETE ACCOUNT') {
|
if ($request->confirmPrompt == 'DELETE ACCOUNT')
|
||||||
$user->forceDelete();
|
{
|
||||||
|
$user->delete();
|
||||||
$request->session()->flash('success','User deleted successfully. PII has been erased.');
|
$request->session()->flash('success','User deleted successfully. PII has been erased.');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'Wrong confirmation text! Try again.');
|
$request->session()->flash('error', 'Wrong confirmation text! Try again.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return redirect()->route('registeredPlayerList');
|
return redirect()->route('registeredPlayerList');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update(UpdateUserRequest $request, User $user)
|
public function update(UpdateUserRequest $request, User $user)
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->authorize('adminEdit', $user);
|
$this->authorize('adminEdit', $user);
|
||||||
|
|
||||||
// Mass update would not be possible here without extra code, making route model binding useless
|
// Mass update would not be possible here without extra code, making route model binding useless
|
||||||
@ -240,22 +249,28 @@ class UserController extends Controller
|
|||||||
$roleDiff = array_diff($existingRoles, $request->roles);
|
$roleDiff = array_diff($existingRoles, $request->roles);
|
||||||
|
|
||||||
// Adds roles that were selected. Removes roles that aren't selected if the user has them.
|
// Adds roles that were selected. Removes roles that aren't selected if the user has them.
|
||||||
foreach ($roleDiff as $deselectedRole) {
|
foreach($roleDiff as $deselectedRole)
|
||||||
if ($user->hasRole($deselectedRole) && $deselectedRole !== 'user') {
|
{
|
||||||
|
if ($user->hasRole($deselectedRole) && $deselectedRole !== 'user')
|
||||||
|
{
|
||||||
$user->removeRole($deselectedRole);
|
$user->removeRole($deselectedRole);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($request->roles as $role) {
|
foreach($request->roles as $role)
|
||||||
if (! $user->hasRole($role)) {
|
{
|
||||||
|
if (!$user->hasRole($role))
|
||||||
|
{
|
||||||
$user->assignRole($role);
|
$user->assignRole($role);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$user->save();
|
$user->save();
|
||||||
$request->session()->flash('success', 'User updated successfully!');
|
$request->session()->flash('success', 'User updated successfully!');
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function add2FASecret(Add2FASecretRequest $request)
|
public function add2FASecret(Add2FASecretRequest $request)
|
||||||
@ -263,30 +278,33 @@ class UserController extends Controller
|
|||||||
$currentSecret = $request->session()->get('current2FA');
|
$currentSecret = $request->session()->get('current2FA');
|
||||||
$isValid = Google2FA::verifyKey($currentSecret, $request->otp);
|
$isValid = Google2FA::verifyKey($currentSecret, $request->otp);
|
||||||
|
|
||||||
if ($isValid) {
|
if ($isValid)
|
||||||
|
{
|
||||||
$request->user()->twofa_secret = $currentSecret;
|
$request->user()->twofa_secret = $currentSecret;
|
||||||
$request->user()->save();
|
$request->user()->save();
|
||||||
|
|
||||||
Log::warning('SECURITY: User activated two-factor authentication', [
|
Log::warning('SECURITY: User activated two-factor authentication', [
|
||||||
'initiator' => $request->user()->email,
|
'initiator' => $request->user()->email,
|
||||||
'ip' => $request->ip(),
|
'ip' => $request->ip()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
Google2FA::login();
|
Google2FA::login();
|
||||||
|
|
||||||
Log::warning('SECURITY: Started two factor session automatically', [
|
Log::warning('SECURITY: Started two factor session automatically', [
|
||||||
'initiator' => $request->user()->email,
|
'initiator' => $request->user()->email,
|
||||||
'ip' => $request->ip(),
|
'ip' => $request->ip()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$request->session()->forget('current2FA');
|
$request->session()->forget('current2FA');
|
||||||
|
|
||||||
if ($request->session()->has('twofaAttemptFailed')) {
|
if ($request->session()->has('twofaAttemptFailed'))
|
||||||
$request->session()->forget('twofaAttemptFailed');
|
$request->session()->forget('twofaAttemptFailed');
|
||||||
}
|
|
||||||
|
|
||||||
$request->session()->flash('success', '2FA succesfully enabled! You\'ll now be prompted for an OTP each time you log in.');
|
$request->session()->flash('success', '2FA succesfully enabled! You\'ll now be prompted for an OTP each time you log in.');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'Incorrect code. Please reopen the 2FA settings panel and try again.');
|
$request->session()->flash('error', 'Incorrect code. Please reopen the 2FA settings panel and try again.');
|
||||||
$request->session()->put('twofaAttemptFailed', true);
|
$request->session()->put('twofaAttemptFailed', true);
|
||||||
}
|
}
|
||||||
@ -298,30 +316,34 @@ class UserController extends Controller
|
|||||||
{
|
{
|
||||||
Log::warning('SECURITY: Disabling two factor authentication (user initiated)', [
|
Log::warning('SECURITY: Disabling two factor authentication (user initiated)', [
|
||||||
'initiator' => $request->user()->email,
|
'initiator' => $request->user()->email,
|
||||||
'ip' => $request->ip(),
|
'ip' => $request->ip()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$request->user()->twofa_secret = null;
|
$request->user()->twofa_secret = null;
|
||||||
$request->user()->save();
|
$request->user()->save();
|
||||||
|
|
||||||
$request->session()->flash('success', 'Two-factor authentication disabled.');
|
$request->session()->flash('success', 'Two-factor authentication disabled.');
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function terminate(Request $request, User $user)
|
public function terminate(Request $request, User $user)
|
||||||
{
|
{
|
||||||
$this->authorize('terminate', User::class);
|
$this->authorize('terminate', User::class);
|
||||||
|
|
||||||
// TODO: move logic to policy
|
// TODO: move logic to policy
|
||||||
if (! $user->isStaffMember() || $user->is(Auth::user())) {
|
if (!$user->isStaffMember() || $user->is(Auth::user()))
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'You cannot terminate this user.');
|
$request->session()->flash('error', 'You cannot terminate this user.');
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($user->roles as $role) {
|
foreach ($user->roles as $role)
|
||||||
if ($role->name == 'user') {
|
{
|
||||||
|
if ($role->name == 'user')
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
76
app/Http/Controllers/VacancyController.php
Executable file → Normal file
76
app/Http/Controllers/VacancyController.php
Executable file → Normal file
@ -1,45 +1,30 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Form;
|
|
||||||
use App\Http\Requests\VacancyEditRequest;
|
|
||||||
use App\Http\Requests\VacancyRequest;
|
use App\Http\Requests\VacancyRequest;
|
||||||
use App\Notifications\VacancyClosed;
|
use App\Http\Requests\VacancyEditRequest;
|
||||||
use App\User;
|
|
||||||
use App\Vacancy;
|
use App\Vacancy;
|
||||||
|
use App\User;
|
||||||
|
use App\Form;
|
||||||
|
|
||||||
|
use App\Notifications\VacancyClosed;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
|
||||||
class VacancyController extends Controller
|
class VacancyController extends Controller
|
||||||
{
|
{
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$this->authorize('viewAny', Vacancy::class);
|
$this->authorize('viewAny', Vacancy::class);
|
||||||
|
|
||||||
return view('dashboard.administration.positions')
|
return view('dashboard.administration.positions')
|
||||||
->with([
|
->with([
|
||||||
'forms' => Form::all(),
|
'forms' => Form::all(),
|
||||||
'vacancies' => Vacancy::all(),
|
'vacancies' => Vacancy::all()
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +33,8 @@ class VacancyController extends Controller
|
|||||||
$this->authorize('create', Vacancy::class);
|
$this->authorize('create', Vacancy::class);
|
||||||
$form = Form::find($request->vacancyFormID);
|
$form = Form::find($request->vacancyFormID);
|
||||||
|
|
||||||
if (! is_null($form)) {
|
if (!is_null($form))
|
||||||
|
{
|
||||||
/* note: since we can't convert HTML back to Markdown, we'll have to do the converting when the user requests a page,
|
/* note: since we can't convert HTML back to Markdown, we'll have to do the converting when the user requests a page,
|
||||||
* and leave the database with Markdown only so it can be used and edited everywhere.
|
* and leave the database with Markdown only so it can be used and edited everywhere.
|
||||||
* for several vacancies, this would require looping through all of them and replacing MD with HTML, which is obviously not the most clean solution;
|
* for several vacancies, this would require looping through all of them and replacing MD with HTML, which is obviously not the most clean solution;
|
||||||
@ -63,38 +49,46 @@ class VacancyController extends Controller
|
|||||||
'permissionGroupName' => $request->permissionGroup,
|
'permissionGroupName' => $request->permissionGroup,
|
||||||
'discordRoleID' => $request->discordRole,
|
'discordRoleID' => $request->discordRole,
|
||||||
'vacancyFormID' => $request->vacancyFormID,
|
'vacancyFormID' => $request->vacancyFormID,
|
||||||
'vacancyCount' => $request->vacancyCount,
|
'vacancyCount' => $request->vacancyCount
|
||||||
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$request->session()->flash('success', 'Vacancy successfully opened. It will now show in the home page.');
|
$request->session()->flash('success', 'Vacancy successfully opened. It will now show in the home page.');
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$request->session()->flash('error', 'You cannot create a vacancy without a valid form.');
|
$request->session()->flash('error', 'You cannot create a vacancy without a valid form.');
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updatePositionAvailability(Request $request, $status, Vacancy $vacancy)
|
public function updatePositionAvailability(Request $request, $status, Vacancy $vacancy)
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->authorize('update', $vacancy);
|
$this->authorize('update', $vacancy);
|
||||||
|
|
||||||
if (! is_null($vacancy)) {
|
if (!is_null($vacancy))
|
||||||
|
{
|
||||||
$type = 'success';
|
$type = 'success';
|
||||||
|
|
||||||
switch ($status) {
|
switch ($status)
|
||||||
|
{
|
||||||
case 'open':
|
case 'open':
|
||||||
$vacancy->open();
|
$vacancy->open();
|
||||||
$message = 'Position successfully opened!';
|
$message = "Position successfully opened!";
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'close':
|
case 'close':
|
||||||
$vacancy->close();
|
$vacancy->close();
|
||||||
$message = 'Position successfully closed!';
|
$message = "Position successfully closed!";
|
||||||
|
|
||||||
foreach (User::all() as $user) {
|
foreach(User::all() as $user)
|
||||||
if ($user->isStaffMember()) {
|
{
|
||||||
|
if ($user->isStaffMember())
|
||||||
|
{
|
||||||
$user->notify(new VacancyClosed($vacancy));
|
$user->notify(new VacancyClosed($vacancy));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -105,24 +99,27 @@ class VacancyController extends Controller
|
|||||||
$type = 'error';
|
$type = 'error';
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$message = "The position you're trying to update doesn't exist!";
|
$message = "The position you're trying to update doesn't exist!";
|
||||||
$type = 'error';
|
$type = "error";
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->session()->flash($type, $message);
|
$request->session()->flash($type, $message);
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function edit(Request $request, Vacancy $vacancy)
|
public function edit(Request $request, Vacancy $vacancy)
|
||||||
{
|
{
|
||||||
$this->authorize('update', $vacancy);
|
$this->authorize('update', $vacancy);
|
||||||
|
|
||||||
return view('dashboard.administration.editposition')
|
return view('dashboard.administration.editposition')
|
||||||
->with('vacancy', $vacancy);
|
->with('vacancy', $vacancy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function update(VacancyEditRequest $request, Vacancy $vacancy)
|
public function update(VacancyEditRequest $request, Vacancy $vacancy)
|
||||||
{
|
{
|
||||||
$this->authorize('update', $vacancy);
|
$this->authorize('update', $vacancy);
|
||||||
@ -134,7 +131,8 @@ class VacancyController extends Controller
|
|||||||
$vacancy->save();
|
$vacancy->save();
|
||||||
|
|
||||||
$request->session()->flash('success', 'Vacancy successfully updated.');
|
$request->session()->flash('success', 'Vacancy successfully updated.');
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
25
app/Http/Controllers/VoteController.php
Executable file → Normal file
25
app/Http/Controllers/VoteController.php
Executable file → Normal file
@ -1,34 +1,18 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Application;
|
use App\Application;
|
||||||
use App\Http\Requests\VoteRequest;
|
use App\Http\Requests\VoteRequest;
|
||||||
|
use App\Jobs\ProcessVoteList;
|
||||||
use App\Vote;
|
use App\Vote;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class VoteController extends Controller
|
class VoteController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
public function vote(VoteRequest $voteRequest, Application $application)
|
public function vote(VoteRequest $voteRequest, Application $application)
|
||||||
{
|
{
|
||||||
$this->authorize('create', Vote::class);
|
$this->authorize('create', Vote::class);
|
||||||
@ -39,8 +23,9 @@ class VoteController extends Controller
|
|||||||
]);
|
]);
|
||||||
$vote->application()->attach($application->id);
|
$vote->application()->attach($application->id);
|
||||||
|
|
||||||
|
|
||||||
Log::info('User ' . Auth::user()->name . ' has voted in applicant ' . $application->user->name . '\'s application', [
|
Log::info('User ' . Auth::user()->name . ' has voted in applicant ' . $application->user->name . '\'s application', [
|
||||||
'voteType' => $voteRequest->voteType,
|
'voteType' => $voteRequest->voteType
|
||||||
]);
|
]);
|
||||||
$voteRequest->session()->flash('success', 'Your vote has been registered!');
|
$voteRequest->session()->flash('success', 'Your vote has been registered!');
|
||||||
|
|
||||||
|
21
app/Http/Kernel.php
Executable file → Normal file
21
app/Http/Kernel.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http;
|
namespace App\Http;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\Kernel as HttpKernel;
|
use Illuminate\Foundation\Http\Kernel as HttpKernel;
|
||||||
@ -89,6 +70,6 @@ class Kernel extends HttpKernel
|
|||||||
'localizationRedirect' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class,
|
'localizationRedirect' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class,
|
||||||
'localeSessionRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class,
|
'localeSessionRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class,
|
||||||
'localeCookieRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleCookieRedirect::class,
|
'localeCookieRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleCookieRedirect::class,
|
||||||
'localeViewPath' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationViewPath::class,
|
'localeViewPath' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationViewPath::class
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
37
app/Http/Middleware/ApplicationEligibility.php
Executable file → Normal file
37
app/Http/Middleware/ApplicationEligibility.php
Executable file → Normal file
@ -1,31 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use App\Application;
|
use App\Application;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Closure;
|
use Closure;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Illuminate\Support\Facades\View;
|
use Illuminate\Support\Facades\View;
|
||||||
|
|
||||||
class ApplicationEligibility
|
class ApplicationEligibility
|
||||||
@ -42,16 +23,22 @@ class ApplicationEligibility
|
|||||||
{
|
{
|
||||||
$curtime = new Carbon(now());
|
$curtime = new Carbon(now());
|
||||||
|
|
||||||
if (Auth::check()) {
|
|
||||||
|
if (Auth::check())
|
||||||
|
{
|
||||||
$applications = Application::where('applicantUserID', Auth::user()->id)->get();
|
$applications = Application::where('applicantUserID', Auth::user()->id)->get();
|
||||||
$eligible = true;
|
$eligible = true;
|
||||||
|
|
||||||
$daysRemaining = 0;
|
$daysRemaining = 0;
|
||||||
|
|
||||||
if (! $applications->isEmpty()) {
|
if (!$applications->isEmpty())
|
||||||
foreach ($applications as $application) {
|
{
|
||||||
|
foreach ($applications as $application)
|
||||||
|
{
|
||||||
$appTime = Carbon::parse($application->created_at);
|
$appTime = Carbon::parse($application->created_at);
|
||||||
if ($appTime->isSameMonth($curtime)) {
|
if ($appTime->isSameMonth($curtime))
|
||||||
|
{
|
||||||
|
|
||||||
Log::warning('Notice: Application ID ' . $application->id . ' was found to be in the same month as today\'s time, making the user ' . Auth::user()->name . ' ineligible for application');
|
Log::warning('Notice: Application ID ' . $application->id . ' was found to be in the same month as today\'s time, making the user ' . Auth::user()->name . ' ineligible for application');
|
||||||
$eligible = false;
|
$eligible = false;
|
||||||
}
|
}
|
||||||
@ -59,12 +46,14 @@ class ApplicationEligibility
|
|||||||
|
|
||||||
$allowedTime = Carbon::parse($applications->last()->created_at)->addMonth();
|
$allowedTime = Carbon::parse($applications->last()->created_at)->addMonth();
|
||||||
$daysRemaining = $allowedTime->diffInDays(now());
|
$daysRemaining = $allowedTime->diffInDays(now());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
View::share('isEligibleForApplication', $eligible);
|
View::share('isEligibleForApplication', $eligible);
|
||||||
View::share('eligibilityDaysRemaining', $daysRemaining);
|
View::share('eligibilityDaysRemaining', $daysRemaining);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return $next($request);
|
return $next($request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
19
app/Http/Middleware/Authenticate.php
Executable file → Normal file
19
app/Http/Middleware/Authenticate.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Illuminate\Auth\Middleware\Authenticate as Middleware;
|
use Illuminate\Auth\Middleware\Authenticate as Middleware;
|
||||||
|
31
app/Http/Middleware/Bancheck.php
Executable file → Normal file
31
app/Http/Middleware/Bancheck.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
@ -39,11 +20,17 @@ class Bancheck
|
|||||||
$userIP = $request->ip();
|
$userIP = $request->ip();
|
||||||
$anonymousUser = User::where('ipAddress', $userIP)->get();
|
$anonymousUser = User::where('ipAddress', $userIP)->get();
|
||||||
|
|
||||||
if (Auth::check() && Auth::user()->isBanned()) {
|
|
||||||
|
if (Auth::check() && Auth::user()->isBanned())
|
||||||
|
{
|
||||||
View::share('isBanned', true);
|
View::share('isBanned', true);
|
||||||
} elseif (! $anonymousUser->isEmpty() && User::find($anonymousUser->id)->isBanned()) {
|
}
|
||||||
|
elseif(!$anonymousUser->isEmpty() && User::find($anonymousUser->id)->isBanned())
|
||||||
|
{
|
||||||
View::share('isBanned', true);
|
View::share('isBanned', true);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
View::share('isBanned', false);
|
View::share('isBanned', false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
19
app/Http/Middleware/CheckForMaintenanceMode.php
Executable file → Normal file
19
app/Http/Middleware/CheckForMaintenanceMode.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode as Middleware;
|
use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode as Middleware;
|
||||||
|
19
app/Http/Middleware/EncryptCookies.php
Executable file → Normal file
19
app/Http/Middleware/EncryptCookies.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
|
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
|
||||||
|
23
app/Http/Middleware/ForceLogoutMiddleware.php
Executable file → Normal file
23
app/Http/Middleware/ForceLogoutMiddleware.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
@ -35,11 +16,11 @@ class ForceLogoutMiddleware
|
|||||||
*/
|
*/
|
||||||
public function handle($request, Closure $next)
|
public function handle($request, Closure $next)
|
||||||
{
|
{
|
||||||
if (Auth::user()->isBanned()) {
|
if (Auth::user()->isBanned())
|
||||||
|
{
|
||||||
Auth::logout();
|
Auth::logout();
|
||||||
|
|
||||||
$request->session()->flash('error', 'Error: Your session has been forcefully terminated. Please try again in a few days.');
|
$request->session()->flash('error', 'Error: Your session has been forcefully terminated. Please try again in a few days.');
|
||||||
|
|
||||||
return redirect('/');
|
return redirect('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
19
app/Http/Middleware/RedirectIfAuthenticated.php
Executable file → Normal file
19
app/Http/Middleware/RedirectIfAuthenticated.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use App\Providers\RouteServiceProvider;
|
use App\Providers\RouteServiceProvider;
|
||||||
|
19
app/Http/Middleware/TrimStrings.php
Executable file → Normal file
19
app/Http/Middleware/TrimStrings.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
|
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
|
||||||
|
21
app/Http/Middleware/TrustProxies.php
Executable file → Normal file
21
app/Http/Middleware/TrustProxies.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Fideloper\Proxy\TrustProxies as Middleware;
|
use Fideloper\Proxy\TrustProxies as Middleware;
|
||||||
@ -31,7 +12,7 @@ class TrustProxies extends Middleware
|
|||||||
*
|
*
|
||||||
* @var array|string
|
* @var array|string
|
||||||
*/
|
*/
|
||||||
protected $proxies = '*';
|
protected $proxies = "*";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The headers that should be used to detect proxies.
|
* The headers that should be used to detect proxies.
|
||||||
|
36
app/Http/Middleware/UsernameUUID.php
Executable file → Normal file
36
app/Http/Middleware/UsernameUUID.php
Executable file → Normal file
@ -1,33 +1,15 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use App\Facades\UUID;
|
|
||||||
use Closure;
|
use Closure;
|
||||||
|
use App\Facades\UUID;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
|
||||||
class UsernameUUID
|
class UsernameUUID
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Converts a Minecraft username found in the request body to a UUID.
|
* Converts a Minecraft username found in the request body to a UUID
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @param \Closure $next
|
* @param \Closure $next
|
||||||
@ -36,21 +18,23 @@ class UsernameUUID
|
|||||||
public function handle($request, Closure $next)
|
public function handle($request, Closure $next)
|
||||||
{
|
{
|
||||||
$input = $request->all();
|
$input = $request->all();
|
||||||
if (isset($input['uuid'])) {
|
if (isset($input['uuid']))
|
||||||
try {
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
$username = $input['uuid'];
|
$username = $input['uuid'];
|
||||||
$input['uuid'] = UUID::toUUID($username);
|
$input['uuid'] = UUID::toUUID($username);
|
||||||
} catch (\InvalidArgumentException $iae) {
|
}
|
||||||
|
catch(\InvalidArgumentException $iae)
|
||||||
|
{
|
||||||
report($iae);
|
report($iae);
|
||||||
|
|
||||||
$request->session()->flash('error', $iae->getMessage());
|
$request->session()->flash('error', $iae->getMessage());
|
||||||
|
|
||||||
return redirect(route('register'));
|
return redirect(route('register'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->replace($input);
|
$request->replace($input);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $next($request);
|
return $next($request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
19
app/Http/Middleware/VerifyCsrfToken.php
Executable file → Normal file
19
app/Http/Middleware/VerifyCsrfToken.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
|
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
|
||||||
|
21
app/Http/Requests/Add2FASecretRequest.php
Executable file → Normal file
21
app/Http/Requests/Add2FASecretRequest.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -44,7 +25,7 @@ class Add2FASecretRequest extends FormRequest
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'otp' => 'required|string|min:6|max:6',
|
'otp' => 'required|string|min:6|max:6'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
22
app/Http/Requests/BanUserRequest.php
Executable file → Normal file
22
app/Http/Requests/BanUserRequest.php
Executable file → Normal file
@ -1,29 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
|
||||||
class BanUserRequest extends FormRequest
|
class BanUserRequest extends FormRequest
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@ -46,7 +28,7 @@ class BanUserRequest extends FormRequest
|
|||||||
return [
|
return [
|
||||||
'reason' => 'required|string',
|
'reason' => 'required|string',
|
||||||
'durationOperand' => 'nullable|string',
|
'durationOperand' => 'nullable|string',
|
||||||
'durationOperator' => 'nullable|string',
|
'durationOperator' => 'nullable|string'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
21
app/Http/Requests/ChangeEmailRequest.php
Executable file → Normal file
21
app/Http/Requests/ChangeEmailRequest.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -44,7 +25,7 @@ class ChangeEmailRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'currentPassword' => 'required|password',
|
'currentPassword' => 'required|password',
|
||||||
'newEmail' => 'required|email|unique:users,email',
|
'newEmail' => 'required|email|unique:users,email'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
21
app/Http/Requests/ChangePasswordRequest.php
Executable file → Normal file
21
app/Http/Requests/ChangePasswordRequest.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -44,7 +25,7 @@ class ChangePasswordRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'newPassword' => 'required|string|confirmed',
|
'newPassword' => 'required|string|confirmed',
|
||||||
'oldPassword' => 'required|string|password',
|
'oldPassword' => 'required|string|password'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
21
app/Http/Requests/DeleteUserRequest.php
Executable file → Normal file
21
app/Http/Requests/DeleteUserRequest.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -44,7 +25,7 @@ class DeleteUserRequest extends FormRequest
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'confirmPrompt' => 'required|string',
|
'confirmPrompt' => 'required|string'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
|
|
||||||
class EditTeamRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function authorize()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'teamDescription' => 'required|string|max:200',
|
|
||||||
'joinType' => 'required|boolean',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
21
app/Http/Requests/FlushSessionsRequest.php
Executable file → Normal file
21
app/Http/Requests/FlushSessionsRequest.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -43,7 +24,7 @@ class FlushSessionsRequest extends FormRequest
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'currentPasswordFlush' => 'required|password',
|
'currentPasswordFlush' => 'required|password'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
22
app/Http/Requests/NewCommentRequest.php
Executable file → Normal file
22
app/Http/Requests/NewCommentRequest.php
Executable file → Normal file
@ -1,29 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
|
||||||
class NewCommentRequest extends FormRequest
|
class NewCommentRequest extends FormRequest
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@ -45,7 +27,7 @@ class NewCommentRequest extends FormRequest
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'comment' => 'required|string|max:600|min:20',
|
'comment' => 'required|string|max:600|min:20'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
|
|
||||||
class NewTeamRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function authorize()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'teamName' => 'required|max:200|string',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
22
app/Http/Requests/ProfileSave.php
Executable file → Normal file
22
app/Http/Requests/ProfileSave.php
Executable file → Normal file
@ -1,28 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use App\Profile;
|
use App\Profile;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class ProfileSave extends FormRequest
|
class ProfileSave extends FormRequest
|
||||||
{
|
{
|
||||||
@ -51,7 +33,7 @@ class ProfileSave extends FormRequest
|
|||||||
'socialInsta' => 'nullable|string',
|
'socialInsta' => 'nullable|string',
|
||||||
'socialTwitter' => 'nullable|string',
|
'socialTwitter' => 'nullable|string',
|
||||||
'socialDiscord' => 'nullable|string',
|
'socialDiscord' => 'nullable|string',
|
||||||
'socialGithub' => 'nullable|string',
|
'socialGithub' => 'nullable|string'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
21
app/Http/Requests/Remove2FASecretRequest.php
Executable file → Normal file
21
app/Http/Requests/Remove2FASecretRequest.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -44,7 +25,7 @@ class Remove2FASecretRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'currentPassword' => 'required|password',
|
'currentPassword' => 'required|password',
|
||||||
'consent' => 'required|accepted',
|
'consent' => 'required|accepted'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
21
app/Http/Requests/SaveNotesRequest.php
Executable file → Normal file
21
app/Http/Requests/SaveNotesRequest.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -43,7 +24,7 @@ class SaveNotesRequest extends FormRequest
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'noteText' => 'required|string',
|
'noteText' => 'required|string'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
21
app/Http/Requests/SearchPlayerRequest.php
Executable file → Normal file
21
app/Http/Requests/SearchPlayerRequest.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -44,7 +25,7 @@ class SearchPlayerRequest extends FormRequest
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'searchTerm' => 'required|string|max:17', // max user char limit set by Mojang
|
'searchTerm' => 'required|string|max:17' // max user char limit set by Mojang
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
|
|
||||||
class SendInviteRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function authorize()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'user' => 'required|integer',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
21
app/Http/Requests/UpdateUserRequest.php
Executable file → Normal file
21
app/Http/Requests/UpdateUserRequest.php
Executable file → Normal file
@ -1,24 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2020 Miguel Nogueira
|
|
||||||
*
|
|
||||||
* This file is part of Raspberry Staff Manager.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -47,7 +28,7 @@ class UpdateUserRequest extends FormRequest
|
|||||||
'email' => 'required|email',
|
'email' => 'required|email',
|
||||||
'name' => 'required|string',
|
'name' => 'required|string',
|
||||||
'uuid' => 'required|max:32|min:32',
|
'uuid' => 'required|max:32|min:32',
|
||||||
'roles' => 'required_without_all',
|
'roles' => 'required_without_all'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user