feat: 初始化项目并完成基础功能开发
- 完成项目初始化
- 实现用户注册、登录功能
- 完成用户管理与权限管理模块
- 开发后端 Tracker 服务器项目管理接口
- 实现日志管理接口
Change-Id: Ia4bde1c9ff600352a7ff0caca0cc50b02cad1af7
diff --git a/react-ui/src/utils/permission.ts b/react-ui/src/utils/permission.ts
new file mode 100644
index 0000000..e7c8a28
--- /dev/null
+++ b/react-ui/src/utils/permission.ts
@@ -0,0 +1,64 @@
+// /**
+// * 字符权限校验
+// * @param {Array} value 校验值
+// * @returns {Boolean}
+// */
+export function matchPerms(permissions: string[], value: string[]) {
+ if (value && value instanceof Array && value.length > 0) {
+ const permissionDatas = value;
+ const all_permission = '*:*:*';
+ const hasPermission = permissions.some((permission) => {
+ return all_permission === permission || permissionDatas.includes(permission);
+ });
+ if (!hasPermission) {
+ return false;
+ }
+ return true;
+ }
+ console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`);
+ return false;
+}
+
+export function matchPerm(permissions: string[], value: string) {
+ if (value && value.length > 0) {
+ const permissionDatas = value;
+ const all_permission = '*:*:*';
+ const hasPermission = permissions.some((permission) => {
+ return all_permission === permission || permissionDatas === permission;
+ });
+ if (!hasPermission) {
+ return false;
+ }
+ return true;
+ }
+ console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`);
+ return false;
+}
+
+export function matchPermission(permissions: string[] | undefined, value: any): boolean {
+ if (permissions === undefined) return false;
+ const type = typeof value;
+ if (type === 'string') {
+ return matchPerm(permissions, value);
+ }
+ return matchPerms(permissions, value);
+}
+
+/**
+ * 角色权限校验
+ * @param {Array} value 校验值
+ * @returns {Boolean}
+ */
+export function checkRole(roles: API.System.Role[] | undefined, value: string[]) {
+ if (roles && value && value.length > 0) {
+ for (let i = 0; i < roles?.length; i++) {
+ for (let j = 0; j < value?.length; j++) {
+ if (value[j] === roles[i].roleKey) {
+ return true;
+ }
+ }
+ }
+ }
+ console.error(`need roles! Like checkRole="['admin','editor']"`);
+ return false;
+}