优化
This commit is contained in:
@@ -3,25 +3,107 @@
|
||||
USE baiyue_iam;
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
DROP PROCEDURE IF EXISTS repair_location_permission_ids;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE repair_location_permission_ids()
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM iam_permission
|
||||
WHERE id IN (5103060, 5103061, 5103062, 5103063, 5103064)
|
||||
AND permission_code <> CASE id
|
||||
WHEN 5103060 THEN 'platform:location:list'
|
||||
WHEN 5103061 THEN 'platform:location:create'
|
||||
WHEN 5103062 THEN 'platform:location:edit'
|
||||
WHEN 5103063 THEN 'platform:location:status'
|
||||
WHEN 5103064 THEN 'platform:location:delete'
|
||||
END
|
||||
) THEN
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MESSAGE_TEXT = '库位权限迁移失败:5103060-5103064 已被其他权限占用';
|
||||
END IF;
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM iam_permission
|
||||
WHERE (id = 5103040 AND permission_code <> 'platform:download:list')
|
||||
OR (id = 5103041 AND permission_code <> 'platform:download:all')
|
||||
) THEN
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MESSAGE_TEXT = '库位权限迁移失败:下载中心稳定 ID 被未知权限占用';
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_location_role_grant;
|
||||
CREATE TEMPORARY TABLE tmp_location_role_grant (
|
||||
role_id BIGINT UNSIGNED NOT NULL,
|
||||
tenant_id BIGINT UNSIGNED NOT NULL,
|
||||
permission_code VARCHAR(128) NOT NULL,
|
||||
PRIMARY KEY (role_id, tenant_id, permission_code)
|
||||
) ENGINE=MEMORY;
|
||||
INSERT IGNORE INTO tmp_location_role_grant (role_id, tenant_id, permission_code)
|
||||
SELECT role_permission.role_id, role_permission.tenant_id, permission.permission_code
|
||||
FROM iam_role_permission role_permission
|
||||
JOIN iam_permission permission ON permission.id = role_permission.permission_id
|
||||
WHERE permission.permission_code IN (
|
||||
'platform:location:list', 'platform:location:create', 'platform:location:edit',
|
||||
'platform:location:status', 'platform:location:delete'
|
||||
);
|
||||
|
||||
DELETE role_permission
|
||||
FROM iam_role_permission role_permission
|
||||
JOIN iam_permission permission ON permission.id = role_permission.permission_id
|
||||
WHERE permission.permission_code IN (
|
||||
'platform:location:list', 'platform:location:create', 'platform:location:edit',
|
||||
'platform:location:status', 'platform:location:delete'
|
||||
);
|
||||
DELETE FROM iam_permission
|
||||
WHERE permission_code IN (
|
||||
'platform:location:create', 'platform:location:edit',
|
||||
'platform:location:status', 'platform:location:delete'
|
||||
);
|
||||
DELETE FROM iam_permission WHERE permission_code = 'platform:location:list';
|
||||
|
||||
INSERT INTO iam_permission
|
||||
(id, tenant_id, app_code, permission_type, parent_id, permission_code, permission_name,
|
||||
route_path, http_method, sort_no, status, built_in, deleted)
|
||||
VALUES
|
||||
(5103040, 0, 'PLATFORM', 'MENU', 5103000, 'platform:download:list', '下载中心',
|
||||
'/downloads', NULL, 40, 'ACTIVE', 1, 0),
|
||||
(5103041, 0, 'PLATFORM', 'BUTTON', 5103040, 'platform:download:all', '查看全部下载任务',
|
||||
NULL, NULL, 10, 'ACTIVE', 1, 0)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
permission_type = VALUES(permission_type), parent_id = VALUES(parent_id),
|
||||
permission_name = VALUES(permission_name), route_path = VALUES(route_path),
|
||||
http_method = VALUES(http_method), sort_no = VALUES(sort_no), status = 'ACTIVE',
|
||||
built_in = 1, deleted = 0;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
CALL repair_location_permission_ids();
|
||||
DROP PROCEDURE repair_location_permission_ids;
|
||||
|
||||
INSERT INTO iam_permission
|
||||
(id, tenant_id, app_code, permission_type, parent_id, permission_code, permission_name,
|
||||
route_path, http_method, sort_no, status, built_in, deleted)
|
||||
VALUES
|
||||
(5103040, 0, 'PLATFORM', 'MENU', 5103000, 'platform:location:list', '库位管理',
|
||||
(5103060, 0, 'PLATFORM', 'MENU', 5103000, 'platform:location:list', '库位管理',
|
||||
'/master-data/locations', NULL, 40, 'ACTIVE', 1, 0),
|
||||
(5103041, 0, 'PLATFORM', 'BUTTON', 5103040, 'platform:location:create', '新增库位',
|
||||
(5103061, 0, 'PLATFORM', 'BUTTON', 5103060, 'platform:location:create', '新增库位',
|
||||
NULL, NULL, 10, 'ACTIVE', 1, 0),
|
||||
(5103042, 0, 'PLATFORM', 'BUTTON', 5103040, 'platform:location:edit', '编辑库位',
|
||||
(5103062, 0, 'PLATFORM', 'BUTTON', 5103060, 'platform:location:edit', '编辑库位',
|
||||
NULL, NULL, 20, 'ACTIVE', 1, 0),
|
||||
(5103043, 0, 'PLATFORM', 'BUTTON', 5103040, 'platform:location:status', '启停库位',
|
||||
(5103063, 0, 'PLATFORM', 'BUTTON', 5103060, 'platform:location:status', '启停库位',
|
||||
NULL, NULL, 30, 'ACTIVE', 1, 0),
|
||||
(5103044, 0, 'PLATFORM', 'BUTTON', 5103040, 'platform:location:delete', '删除库位',
|
||||
(5103064, 0, 'PLATFORM', 'BUTTON', 5103060, 'platform:location:delete', '删除库位',
|
||||
NULL, NULL, 40, 'ACTIVE', 1, 0)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
permission_type = VALUES(permission_type), parent_id = VALUES(parent_id),
|
||||
permission_name = VALUES(permission_name), route_path = VALUES(route_path),
|
||||
sort_no = VALUES(sort_no), status = 'ACTIVE', built_in = 1, deleted = 0;
|
||||
|
||||
INSERT IGNORE INTO iam_role_permission (role_id, permission_id, tenant_id)
|
||||
SELECT grant_row.role_id, permission.id, grant_row.tenant_id
|
||||
FROM tmp_location_role_grant grant_row
|
||||
JOIN iam_permission permission
|
||||
ON permission.tenant_id = 0 AND permission.app_code = 'PLATFORM'
|
||||
AND permission.permission_code = grant_row.permission_code;
|
||||
|
||||
-- 二期新增库位权限默认只授予平台系统管理员。
|
||||
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
||||
SELECT 4000001, id, 0
|
||||
@@ -32,3 +114,5 @@ WHERE tenant_id = 0 AND app_code = 'PLATFORM'
|
||||
'platform:location:status', 'platform:location:delete'
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_location_role_grant;
|
||||
|
||||
Reference in New Issue
Block a user