added a way for mining operations to be recorded.

refactored mining tax invoice jobs with a job chain and new directory structure
added views and forms for mining operations
added navbar button for mining operations
refactored how admin dashboard controller checks for permissions versus roles
This commit is contained in:
2021-06-02 01:49:24 +09:00
parent 17b1db88c1
commit 27f782f659
17 changed files with 393 additions and 17 deletions

View File

@@ -33,14 +33,17 @@ class AdminDashboardController extends Controller
public function __construct()
{
$this->middleware('auth');
$this->middleware('role:Admin');
$this->middleware('role:User');
}
/**
* Show the administration dashboard.
*/
public function displayAdminDashboard() {
if(auth()->user()->hasRole('Admin') || auth()->user()->hasPermission('moon.admin') || auth()->user()->hasPermission('srp.admin') || auth()->user()->hasPermission('contract.admin')) {
if(auth()->user()->hasRole('Admin');
auth()->user()->hasPermission('srp.admin') ||
auth()->user()->hasPermission('contract.admin' ||
auth()->user()->hasPermission('mining.officer'))) {
//Do nothing and continue on
} else {
redirect('/dashboard');
@@ -54,6 +57,8 @@ class AdminDashboardController extends Controller
* Display users in a paginated format
*/
public function displayUsersPaginated() {
$this->middleware('role:Admin');
//Declare array variables
$user = array();
$permission = array();
@@ -91,6 +96,8 @@ class AdminDashboardController extends Controller
* Search users for a specific user
*/
public function searchUsers(Request $request) {
$this->middleware('role:Admin');
//Declare array variables
$user = array();
$permission = array();
@@ -133,6 +140,8 @@ class AdminDashboardController extends Controller
* Display the allowed logins
*/
public function displayAllowedLogins() {
$this->middleware('role:Admin');
//Declare array variables
$entities = array();
@@ -155,6 +164,8 @@ class AdminDashboardController extends Controller
*
*/
public function displayTaxes() {
$this->middleware('role:Admin');
//Declare variables needed for displaying items on the page
$months = 3;
$pi = array();
@@ -246,6 +257,8 @@ class AdminDashboardController extends Controller
* Display the modify user form
*/
public function displayModifyUser(Request $request) {
$this->middleware('role:Admin');
$permissions = array();
$roles = array();
@@ -280,6 +293,8 @@ class AdminDashboardController extends Controller
* Modify a user's role
*/
public function modifyRole(Request $request) {
$this->middleware('role:Admin');
$this->validate($request, [
'user' => 'required',
'role' => 'required',
@@ -293,6 +308,8 @@ class AdminDashboardController extends Controller
}
public function addPermission(Request $request) {
$this->middleware('role:Admin');
//Get the user and permission from the form
$character = $request->user;
$permission = $request->permission;
@@ -316,6 +333,8 @@ class AdminDashboardController extends Controller
* Delete a user to reset their permissions
*/
public function removeUser(Request $request) {
$this->middleware('role:Admin');
//Get the user from the form to delete
$user = $request->user;
@@ -341,6 +360,8 @@ class AdminDashboardController extends Controller
* Add an entity to the allowed login table
*/
public function addAllowedLogin(Request $request) {
$this->middleware('role:Admin');
//Set the parameters to validate the form
$this->validate($request, [
'allowedEntityId' => 'required',
@@ -380,6 +401,8 @@ class AdminDashboardController extends Controller
* Remove an entity from the allowed login table
*/
public function removeAllowedLogin(Request $request) {
$this->middleware('role:Admin');
//Set the parameters to validate the form
$this->validate($request, [
'removeAllowedLogin' => 'required',
@@ -396,6 +419,8 @@ class AdminDashboardController extends Controller
* Show journal entries in a table for admins from alliance wallets
*/
public function displayJournalEntries() {
$this->middleware('role:Admin');
$date = Carbon::now()->subDays(60);
$journal = AllianceWalletJournal::where('date', '>=', $date)

View File

@@ -34,7 +34,7 @@ class DashboardController extends Controller
public function __construct()
{
$this->middleware('auth');
$this->middleware('role:Guest');
$this->middleware('role:User');
}
/**

View File

@@ -25,12 +25,74 @@ use App\Models\Moon\ItemComposition;
use App\Models\Moon\MineralPrice;
use App\Models\Esi\EsiToken;
use App\Models\Esi\EsiScope;
use App\Models\Structure\Structure;
class MiningTaxesAdminController extends Controller
{
public function __construct() {
$this->middleware('auth');
$this->middleware('role:Admin');
$this->middleware('role:User');
$this->middleware('mining.officer');
}
/**
* Display the form for mining operations held by the alliance
*/
public function DisplayMiningOperationForm() {
//Declare variables
$lookup = new LookupHelper;
$sHelper = new StructureHelper;
$structures = new Collection;
//Get all of the structures
$athanors = $sHelper->GetStructuresByType('Athanor');
$tataras = $sHelper->GetStructuresByType('Tatara');
foreach($athanors as $athanor) {
$structures->push([
$athanor->structure_name => $athanor->structure_id,
]);
}
foreach($tataras as $tatara) {
$structures->push([
$tatara->structure_name => $tatara->structure_id,
]);
}
$structures->sort();
return view('miningtax.admin.display.miningops.form')->with('structures', $structures);
}
/**
* Store the results from the mining operations form
*/
public function StoreMiningOperationForm(Request $request) {
//Validate the data
$this->validate($request, [
'name' => 'required',
'date' => 'required',
'structure' => 'required',
]);
//Get the name of the structure from the table
$moon = Observer::where([
'observer_id' => $request->structure,
])->get();
//Save the mining operation into the database
$operation = new MiningOperation;
$operation->structure_id = $request->structure;
$operation->structure_name = $moon->observer_name;
$operation->authorized_by_id = auth()->user()->getId();
$operation->authorized_by_name = auth()->user()->getName();
$operation->operation_date = $request->date;
$operation->processed = 'No';
$operation->processed_on = null;
$operation->save();
return redirect('/admin/dashboard')->with('success', 'Operation added successfully.');
}
/**
@@ -153,6 +215,8 @@ class MiningTaxesAdminController extends Controller
'invoice_id' => $request->invoiceId,
])->update([
'status' => $request->status,
'modified_by_id' => auth()->user()->getId(),
'modified_by_name' => auth()->user()->getName(),
]);
return redirect('/miningtax/admin/display/unpaid')->with('success', 'Invoice successfully updated.');