code ?? '') === '' && is_string($role->slug) && $role->slug !== '') { $role->code = $role->slug; } }); } protected $fillable = [ 'slug', 'name', 'code', 'description', 'status', 'is_system', 'sort_order', ]; /** * @return BelongsToMany */ public function menuActions(): BelongsToMany { return $this->belongsToMany( AdminMenuAction::class, 'admin_role_menu_actions', 'role_id', 'menu_action_id', ); } /** @return BelongsToMany */ public function users(): BelongsToMany { return $this->belongsToMany( AdminUser::class, 'admin_user_site_roles', 'role_id', 'admin_user_id', )->withPivot(['site_id', 'granted_at']); } /** * @return list */ public function legacyPermissionSlugs(): array { $codes = DB::table('admin_role_menu_actions as rma') ->join('admin_menu_actions as ma', 'ma.id', '=', 'rma.menu_action_id') ->where('rma.role_id', $this->id) ->where('ma.status', 1) ->pluck('ma.permission_code') ->all(); return AdminPermissionBridge::legacySlugsGrantedByMenuActionCodes($codes); } }