![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/medad.corals.io/Corals/modules/Medad/database/seeds/ |
<?php namespace Corals\Modules\Medad\database\seeds; use Corals\User\Models\Permission; use Corals\User\Models\Role; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; use Spatie\Permission\PermissionRegistrar; class MedadPermissionsDatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $permissions = []; $permissions[] = [ 'name' => 'Administrations::admin.medad', ]; $models = [ 'company', 'company_relation', 'delivery_note', 'purchase_order', 'quotation', 'quotation_request', 'project', 'branch', 'invoice', 'transaction', 'vehicle', 'vehicleService', 'vehicleDriver', ]; $levels = ['view', 'create', 'update', 'delete']; foreach ($models as $model) { foreach ($levels as $level) { $permissions[] = [ 'name' => 'Medad::' . $model . '.' . $level, ]; } } $permissions [] = ['name' => 'Medad::transaction.mark_as_received']; $permissions [] = ['name' => 'Medad::invoice.mark_as_received']; $permissions [] = ['name' => 'Medad::delivery_note.update_driver']; $permissions = array_map(function ($item) { return array_merge($item, [ 'guard_name' => config('auth.defaults.guard'), 'created_at' => now(), 'updated_at' => now(), ]); }, $permissions); DB::table('permissions')->insert($permissions); app(PermissionRegistrar::class)->forgetCachedPermissions(); $roles = [ 'Company Admin' => [ 'redirect_url' => url('medad/my-company') ], 'Project Manager' => [ 'redirect_url' => url('medad/my-branch') ], 'Company Member' => [ 'redirect_url' => url('medad/my-branch') ], 'Driver' => [ 'redirect_url' => url('medad/my-branch') ], 'Admin' => [ 'redirect_url' => url('medad/my-branch') ], 'Finance' => [ 'redirect_url' => url('medad/my-branch') ], // 'Salesman', // 'Buyer', // 'Receiver' ]; foreach ($roles as $role => $details) { Role::create(array_merge([ 'name' => 'medad_' . Str::slug($role, '_'), 'label' => $role, 'guard_name' => config('auth.defaults.guard'), ], $details)); } $admin_role = Role::findByName('medad_company_admin'); $driver_role = Role::findByName('medad_driver'); $admin = Role::findByName('medad_admin'); $utilityPermissionsList = Permission::where('name', 'like', 'Utility%') ->whereIn('name', [ 'Utility::comment.create', ])->get(); $medadPermissionsList = Permission::where('name', 'like', 'Medad%') ->whereNotIn('name', [ 'Medad::company.create', 'Medad::company.delete', ])->get(); $medadPermissionsAdmin = Permission::where('name', 'like', 'Medad%') ->whereNotIn('name', [ 'Medad::company.create', 'Medad::company.delete', 'Medad::branch.create', 'Medad::branch.delete', ])->get(); $medadPermissionsView = Permission::where('name', 'like', 'Medad%') ->whereIn('name', [ 'Medad::company.view', 'Medad::company_relation.view', 'Medad::delivery_note.view', 'Medad::purchase_order.view', 'Medad::quotation.view', 'Medad::quotation_request.view', 'Medad::project.view', 'Medad::branch.view', 'Medad::invoice.view', 'Medad::transaction.view', 'Medad::vehicle.view', 'Medad::vehicleService.view', 'Medad::vehicleDriver.view', ])->get(); $medadPermissionsOfMember = Permission::where('name', 'like', 'Medad%') ->whereIn('name', [ 'Medad::delivery_note.create', 'Medad::purchase_order.create', 'Medad::quotation.create', 'Medad::invoice.create', 'Medad::delivery_note.update', 'Medad::purchase_order.update', 'Medad::quotation.update', 'Medad::invoice.update', ])->get(); $medadPermissionsOfManager = Permission::where('name', 'like', 'Medad%') ->whereIn('name', [ 'Medad::project.create', 'Medad::project.update', 'Medad::project.delete', 'Medad::purchase_order.create', 'Medad::quotation_request.create', 'Medad::transaction.create', 'Medad::transaction.update', 'Medad::transaction.mark_as_received', 'Medad::invoice.mark_as_received', 'Medad::delivery_note.update_driver', ])->get(); $medadPermissionsOfFinance = Permission::where('name', 'like', 'Medad%') ->whereIn('name', [ 'Medad::invoice.create', 'Medad::invoice.update', 'Medad::transaction.create', 'Medad::transaction.update', 'Medad::transaction.mark_as_received', 'Medad::invoice.mark_as_received', ])->get(); $medadPermissionsDriver = Permission::where('name', 'like', 'Medad%') ->whereIn('name', [ 'Medad::delivery_note.update_driver', ])->get(); $roles = Role::where('name', 'like', 'medad%')->get(); foreach ($roles as $role) { $role->givePermissionTo($utilityPermissionsList); } $admin_role->givePermissionTo($medadPermissionsList); $driver_role->givePermissionTo($medadPermissionsView); // $driver_role->givePermissionTo($medadPermissionsDriver); $member_role = Role::findByName('medad_company_member'); $member_role->givePermissionTo($medadPermissionsView); $member_role->givePermissionTo($medadPermissionsOfMember); $manager_role = Role::findByName('medad_project_manager'); $manager_role->givePermissionTo($medadPermissionsView); $manager_role->givePermissionTo($medadPermissionsOfManager); $finance_role = Role::findByName('medad_finance'); $finance_role->givePermissionTo($medadPermissionsView); $finance_role->givePermissionTo($medadPermissionsOfFinance); $admin->givePermissionTo($medadPermissionsView); $admin->givePermissionTo($medadPermissionsAdmin); $userPermissionsList = Permission::where('name', 'like', 'User::user%')->get(); $admin_role->givePermissionTo($userPermissionsList); try { Role::findByName('member')->delete(); } catch (\Exception $exception) { } } }