|
@@ -6,6 +6,7 @@ use Catch\Base\CatchModel as Model;
|
|
|
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
|
|
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
|
|
use Laravel\Sanctum\HasApiTokens;
|
|
|
+use Modules\Common\Repository\Options\Modules;
|
|
|
use Modules\User\Models\Traits\UserRelations;
|
|
|
use Illuminate\Auth\Authenticatable;
|
|
|
|
|
@@ -104,4 +105,19 @@ class User extends Model implements AuthenticatableContract
|
|
|
|
|
|
return parent::updateBy($id, $data);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 如果$showApp为空那么就不展示所有isApp为true的模块
|
|
|
+ * 否则展示所有isApp为false以及showApp对应的name的模块
|
|
|
+ * @param string $showApp
|
|
|
+ */
|
|
|
+ public function showPermissions($showApp = '') {
|
|
|
+ $hiddenAppModuleNames = Modules::getAppModules()->reject(function ($module) use ($showApp) {
|
|
|
+ return $showApp == $module['name'];
|
|
|
+ })->pluck('name');
|
|
|
+ $enablePermissions = $this->getAttribute('permissions')->reject(function ($permission) use ($hiddenAppModuleNames){
|
|
|
+ return $hiddenAppModuleNames->contains($permission['module']);
|
|
|
+ });
|
|
|
+ $this->setAttribute('permissions', $enablePermissions);
|
|
|
+ }
|
|
|
}
|