需要让某些组件仅查看基于新角色的访问权限?

Need to make certain components only view access based on new role?

在我正在开发的应用程序中,它是一个相当大的代码库,components/pages 有时基于用户角色。管理员将能够看到某些按钮或部分,而普通用户则看不到。

我需要修改很多现有 pages/components 以适应正在添加的新角色,即 view-only-admin。

此角色将只能查看包括日历、任务等在内的所有内容,但不允许他们进行任何类型的更新。

遍历每个组件和文件的模板并查找 v-if admin 并添加一个 view-only-admin 以及制作每个按钮或 submit/click 方法对于仅查看管理员角色的行为不同。

对整个应用程序处理此问题的最佳方法是什么?重写和修改 v-if 和 submit 方法似乎是在浪费时间。

我只使用 Vue/Nuxt 几个月,但我读过 Mixins 是可以重用的代码片段。

是否可以编写一个 mixin,以便如果角色是“view-only-admin”并且有一个操作是 put/Post 调用,那么他们将无法执行那些 API 调用并显示错误消息?

我不确定如何正确实施此功能。如果我能够使用 mixin 停止所有 PUT/POST 调用,它只会重定向到 404 对吗?

想法?

如果您在 POST/PUT 方法中使用 axios,那么您一定要检查 Interceptors

但是,如果您只添加一个没有 UI 更新的拦截器 - 您的用户可能会感到困惑,为什么有些按钮存在但没有按预期工作。