86 lines
3.3 KiB
SQL
86 lines
3.3 KiB
SQL
-- 平台入库单扣货独立写权限;查看入库单不会自动获得扣货能力。
|
|
USE baiyue_iam;
|
|
SET NAMES utf8mb4;
|
|
|
|
DROP PROCEDURE IF EXISTS migrate_inbound_hold_permission;
|
|
DELIMITER $$
|
|
CREATE PROCEDURE migrate_inbound_hold_permission()
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1
|
|
FROM iam_permission
|
|
WHERE (id = 5102032 AND (tenant_id <> 0
|
|
OR app_code <> 'PLATFORM'
|
|
OR permission_type <> 'BUTTON'
|
|
OR permission_code <> 'platform:firstleg:inbound:hold'))
|
|
OR (permission_code = 'platform:firstleg:inbound:hold'
|
|
AND (id <> 5102032 OR tenant_id <> 0 OR app_code <> 'PLATFORM'))
|
|
) THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='入库单扣货权限初始化失败:权限ID、编码或类型冲突';
|
|
END IF;
|
|
|
|
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
|
|
(5102032, 0, 'PLATFORM', 'BUTTON', 5102030, 'platform:firstleg:inbound:hold',
|
|
'扣货与解除扣货', NULL, 'POST', 20, 'ACTIVE', 1, 0)
|
|
ON DUPLICATE KEY UPDATE
|
|
permission_name=VALUES(permission_name), parent_id=VALUES(parent_id),
|
|
route_path=VALUES(route_path), http_method=VALUES(http_method),
|
|
sort_no=VALUES(sort_no), status='ACTIVE', built_in=1, deleted=0;
|
|
|
|
INSERT IGNORE INTO iam_role_permission (tenant_id, role_id, permission_id, created_at)
|
|
SELECT 0, role.id, permission.id, CURRENT_TIMESTAMP(3)
|
|
FROM iam_role role
|
|
JOIN iam_permission permission
|
|
ON permission.tenant_id=0
|
|
AND permission.app_code='PLATFORM'
|
|
AND permission.permission_code='platform:firstleg:inbound:hold'
|
|
WHERE role.tenant_id=0
|
|
AND role.app_code='PLATFORM'
|
|
AND role.role_code='PLATFORM_ADMIN'
|
|
AND role.status='ACTIVE'
|
|
AND role.deleted=0
|
|
AND permission.status='ACTIVE'
|
|
AND permission.deleted=0;
|
|
|
|
IF (SELECT COUNT(*)
|
|
FROM iam_permission
|
|
WHERE id=5102032
|
|
AND tenant_id=0
|
|
AND app_code='PLATFORM'
|
|
AND permission_type='BUTTON'
|
|
AND parent_id=5102030
|
|
AND permission_code='platform:firstleg:inbound:hold'
|
|
AND http_method='POST'
|
|
AND status='ACTIVE'
|
|
AND built_in=1
|
|
AND deleted=0) <> 1 THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='入库单扣货权限初始化失败:权限资源不完整';
|
|
END IF;
|
|
|
|
IF (SELECT COUNT(*)
|
|
FROM iam_role_permission grant_row
|
|
JOIN iam_role role
|
|
ON role.id=grant_row.role_id
|
|
AND role.tenant_id=grant_row.tenant_id
|
|
JOIN iam_permission permission
|
|
ON permission.id=grant_row.permission_id
|
|
AND permission.tenant_id=grant_row.tenant_id
|
|
WHERE role.tenant_id=0
|
|
AND role.app_code='PLATFORM'
|
|
AND role.role_code='PLATFORM_ADMIN'
|
|
AND role.status='ACTIVE'
|
|
AND role.deleted=0
|
|
AND permission.permission_code='platform:firstleg:inbound:hold'
|
|
AND permission.status='ACTIVE'
|
|
AND permission.deleted=0) <> 1 THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='入库单扣货权限初始化失败:平台超级管理员授权不完整';
|
|
END IF;
|
|
END$$
|
|
DELIMITER ;
|
|
|
|
CALL migrate_inbound_hold_permission();
|
|
DROP PROCEDURE IF EXISTS migrate_inbound_hold_permission;
|