%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/public_html/admin1/app/Models/ |
Upload File : |
<?php
namespace App\Models;
use App\Scopes\CompanyScope;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* App\Models\PermissionRole
*
* @property int $permission_id
* @property int $role_id
* @property int $permission_type_id
* @property-read mixed $icon
* @property-read \App\Models\PermissionType $permissionType
* @method static \Illuminate\Database\Eloquent\Builder|PermissionRole newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|PermissionRole newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|PermissionRole query()
* @method static \Illuminate\Database\Eloquent\Builder|PermissionRole wherePermissionId($value)
* @method static \Illuminate\Database\Eloquent\Builder|PermissionRole wherePermissionTypeId($value)
* @method static \Illuminate\Database\Eloquent\Builder|PermissionRole whereRoleId($value)
* @property-read \App\Models\Permission $permission
* @mixin \Eloquent
*/
class PermissionRole extends BaseModel
{
protected $table = 'permission_role';
protected $fillable = ['role_id', 'permission_id', 'permission_type_id'];
public $timestamps = false;
/**
* XXXXXXXXXXX
*
* @return BelongsTo
*/
public function permissionType(): BelongsTo
{
return $this->belongsTo(PermissionType::class, 'permission_type_id');
}
public function permission(): BelongsTo
{
return $this->belongsTo(Permission::class, 'permission_id');
}
public static function employeeRolePermissions()
{
$employeePermissionsArray = [
'view_projects' => PermissionType::OWNED,
'view_project_files' => PermissionType::ALL,
'add_project_files' => PermissionType::ALL,
'edit_project_files' => PermissionType::ADDED,
'delete_project_files' => PermissionType::ADDED,
'view_project_members' => PermissionType::ALL,
'view_project_discussions' => PermissionType::ALL,
'add_project_discussions' => PermissionType::ALL,
'edit_project_discussions' => PermissionType::ADDED,
'delete_project_discussions' => PermissionType::ADDED,
'view_project_note' => PermissionType::ALL,
'view_attendance' => PermissionType::OWNED,
'add_tasks' => PermissionType::ADDED,
'view_tasks' => PermissionType::BOTH,
'edit_tasks' => PermissionType::ADDED,
'delete_tasks' => PermissionType::ADDED,
'view_project_tasks' => PermissionType::ALL,
'view_sub_tasks' => PermissionType::ALL,
'add_sub_tasks' => PermissionType::ALL,
'edit_sub_tasks' => PermissionType::ADDED,
'delete_sub_tasks' => PermissionType::ADDED,
'view_task_files' => PermissionType::ALL,
'add_task_files' => PermissionType::ALL,
'edit_task_files' => PermissionType::ADDED,
'delete_task_files' => PermissionType::ADDED,
'view_task_comments' => PermissionType::ALL,
'add_task_comments' => PermissionType::ALL,
'edit_task_comments' => PermissionType::ADDED,
'delete_task_comments' => PermissionType::ADDED,
'view_task_notes' => PermissionType::ALL,
'add_task_notes' => PermissionType::ALL,
'edit_task_notes' => PermissionType::ADDED,
'delete_task_notes' => PermissionType::ADDED,
'add_timelogs' => PermissionType::ADDED,
'edit_timelogs' => PermissionType::ADDED,
'view_timelogs' => PermissionType::BOTH,
'view_project_timelogs' => PermissionType::ALL,
'add_tickets' => PermissionType::ADDED,
'view_tickets' => PermissionType::BOTH,
'edit_tickets' => PermissionType::BOTH,
'delete_tickets' => PermissionType::ADDED,
'view_events' => PermissionType::OWNED,
'view_notice' => PermissionType::OWNED,
'add_leave' => PermissionType::ADDED,
'view_leave' => PermissionType::BOTH,
'view_leaves_taken' => PermissionType::ALL,
'add_lead' => PermissionType::ADDED,
'view_lead' => PermissionType::BOTH,
'edit_lead' => PermissionType::ADDED,
'view_lead_files' => PermissionType::ADDED,
'add_lead_files' => PermissionType::ALL,
'view_lead_follow_up' => PermissionType::ALL,
'add_lead_follow_up' => PermissionType::ALL,
'edit_lead_follow_up' => PermissionType::ADDED,
'delete_lead_follow_up' => PermissionType::ADDED,
'change_lead_status' => PermissionType::BOTH,
'view_holiday' => PermissionType::ALL,
'add_expenses' => PermissionType::ADDED,
'view_expenses' => PermissionType::BOTH,
'edit_expenses' => PermissionType::ADDED,
'delete_expenses' => PermissionType::ADDED,
'view_appreciation' => PermissionType::OWNED,
'view_immigration' => PermissionType::OWNED,
'add_immigration' => PermissionType::OWNED,
'edit_immigration' => PermissionType::OWNED,
'delete_immigration' => PermissionType::OWNED,
];
return $employeePermissionsArray;
}
public static function clientRolePermissions()
{
$clientPermissionsArray = [
'view_projects' => PermissionType::OWNED,
'view_project_files' => PermissionType::ALL,
'add_project_files' => PermissionType::ALL,
'edit_project_files' => PermissionType::ADDED,
'delete_project_files' => PermissionType::ADDED,
'view_project_members' => PermissionType::ALL,
'view_project_discussions' => PermissionType::ALL,
'add_project_discussions' => PermissionType::ALL,
'edit_project_discussions' => PermissionType::ADDED,
'delete_project_discussions' => PermissionType::ADDED,
'view_project_note' => PermissionType::ALL,
'view_tasks' => PermissionType::OWNED,
'view_project_tasks' => PermissionType::ALL,
'view_sub_tasks' => PermissionType::ALL,
'view_task_files' => PermissionType::ALL,
'view_task_comments' => PermissionType::ALL,
'add_task_comments' => PermissionType::ALL,
'edit_task_comments' => PermissionType::ADDED,
'delete_task_comments' => PermissionType::ADDED,
'view_task_notes' => PermissionType::ALL,
'add_task_notes' => PermissionType::ALL,
'edit_task_notes' => PermissionType::ADDED,
'delete_task_notes' => PermissionType::ADDED,
'view_timelogs' => PermissionType::OWNED,
'view_project_timelogs' => PermissionType::ALL,
'add_tickets' => PermissionType::ADDED,
'view_tickets' => PermissionType::BOTH,
'edit_tickets' => PermissionType::ADDED,
'delete_tickets' => PermissionType::ADDED,
'view_events' => PermissionType::OWNED,
'view_notice' => PermissionType::OWNED,
'view_estimates' => PermissionType::OWNED,
'view_invoices' => PermissionType::OWNED,
'view_project_invoices' => PermissionType::ALL,
'view_payments' => PermissionType::OWNED,
'view_project_payments' => PermissionType::ALL,
'view_product' => PermissionType::ALL,
'view_contract' => PermissionType::OWNED,
'add_contract_discussion' => PermissionType::ALL,
'view_contract_discussion' => PermissionType::ALL,
'view_contract_files' => PermissionType::ALL,
'add_order' => PermissionType::ALL,
'view_order' => PermissionType::OWNED,
];
return $clientPermissionsArray;
}
public static function insertModuleRolePermission($moduleName, $companyId)
{
$modulePermissions = \App\Models\Module::with('permissionsAll')->where('module_name', $moduleName)->firstOrFail();
$adminRole = Role::withoutGlobalScope(CompanyScope::class)->with('roleuser', 'roleuser.user.roles')
->where('name', 'admin')
->where('company_id', $companyId)
->first();
PermissionRole::whereHas('permission', function ($query) use ($modulePermissions) {
$query->where('module_id', $modulePermissions->id);
})->where('role_id', $adminRole->id)->delete();
foreach ($modulePermissions->permissionsAll as $permission) {
PermissionRole::create([
'permission_id' => $permission->id,
'role_id' => $adminRole->id,
'permission_type_id' => PermissionType::ALL
]);
}
foreach ($adminRole->roleuser as $roleuser) {
foreach ($modulePermissions->permissionsAll as $permission) {
UserPermission::firstOrCreate([
'permission_id' => $permission->id,
'user_id' => $roleuser->user_id,
'permission_type_id' => PermissionType::ALL
]);
}
}
$otherRoles = Role::withoutGlobalScope(CompanyScope::class)->with('roleuser', 'roleuser.user.roles')
->where('name', '<>', 'admin')
->where('company_id', $companyId)
->get();
foreach ($otherRoles as $key => $role) {
foreach ($modulePermissions->permissionsAll as $permission) {
$permissionRole = PermissionRole::where('permission_id', $permission->id)
->where('role_id', $role->id)
->first();
if (!$permissionRole) {
PermissionRole::create([
'permission_id' => $permission->id,
'role_id' => $role->id,
'permission_type_id' => PermissionType::NONE
]);
}
}
foreach ($role->roleuser as $roleuser) {
foreach ($modulePermissions->permissionsAll as $permission) {
$userPermission = UserPermission::where('permission_id', $permission->id)
->where('user_id', $roleuser->user_id)
->first();
if (!$userPermission) {
UserPermission::create([
'permission_id' => $permission->id,
'user_id' => $roleuser->user_id,
'permission_type_id' => PermissionType::NONE
]);
}
}
}
}
}
}