fix: 对齐QQBot消息推送菜单授权
This commit is contained in:
parent
b33b753ffc
commit
832046b3bc
@ -1173,10 +1173,20 @@ ON DUPLICATE KEY UPDATE `pid`=VALUES(`pid`),`path`=VALUES(`path`),`component`=VA
|
|||||||
INSERT IGNORE INTO `admin_role_menu` (`role_id`, `menu_id`)
|
INSERT IGNORE INTO `admin_role_menu` (`role_id`, `menu_id`)
|
||||||
SELECT role.`id`, menu.`id`
|
SELECT role.`id`, menu.`id`
|
||||||
FROM `admin_role` role
|
FROM `admin_role` role
|
||||||
JOIN `admin_menu` menu ON menu.`name` LIKE 'QqBot%'
|
CROSS JOIN `admin_menu` menu
|
||||||
WHERE role.`role_code` IN ('super', 'admin')
|
WHERE role.`role_code` IN ('super', 'admin')
|
||||||
AND role.`status` = 1
|
AND role.`status` = 1
|
||||||
AND role.`is_deleted` = 0
|
AND role.`is_deleted` = 0
|
||||||
|
AND menu.`id` IN (
|
||||||
|
2041700000000100413, 2041700000000100414,
|
||||||
|
2041700000000120461, 2041700000000120462, 2041700000000120463,
|
||||||
|
2041700000000120464, 2041700000000120465, 2041700000000120471,
|
||||||
|
2041700000000120472, 2041700000000120473, 2041700000000120474,
|
||||||
|
2041700000000120475, 2041700000000120476, 2041700000000120481,
|
||||||
|
2041700000000120482, 2041700000000120483, 2041700000000120484,
|
||||||
|
2041700000000120485
|
||||||
|
)
|
||||||
|
AND menu.`status` = 1
|
||||||
AND menu.`is_deleted` = 0;
|
AND menu.`is_deleted` = 0;
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|||||||
@ -425,10 +425,20 @@ ON DUPLICATE KEY UPDATE
|
|||||||
INSERT IGNORE INTO `admin_role_menu` (`role_id`, `menu_id`)
|
INSERT IGNORE INTO `admin_role_menu` (`role_id`, `menu_id`)
|
||||||
SELECT role.`id`, menu.`id`
|
SELECT role.`id`, menu.`id`
|
||||||
FROM `admin_role` role
|
FROM `admin_role` role
|
||||||
JOIN `admin_menu` menu ON menu.`name` LIKE 'QqBot%'
|
CROSS JOIN `admin_menu` menu
|
||||||
WHERE role.`role_code` IN ('super', 'admin')
|
WHERE role.`role_code` IN ('super', 'admin')
|
||||||
AND role.`status` = 1
|
AND role.`status` = 1
|
||||||
AND role.`is_deleted` = 0
|
AND role.`is_deleted` = 0
|
||||||
|
AND menu.`id` IN (
|
||||||
|
2041700000000100413, 2041700000000100414,
|
||||||
|
2041700000000120461, 2041700000000120462, 2041700000000120463,
|
||||||
|
2041700000000120464, 2041700000000120465, 2041700000000120471,
|
||||||
|
2041700000000120472, 2041700000000120473, 2041700000000120474,
|
||||||
|
2041700000000120475, 2041700000000120476, 2041700000000120481,
|
||||||
|
2041700000000120482, 2041700000000120483, 2041700000000120484,
|
||||||
|
2041700000000120485
|
||||||
|
)
|
||||||
|
AND menu.`status` = 1
|
||||||
AND menu.`is_deleted` = 0;
|
AND menu.`is_deleted` = 0;
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|||||||
@ -467,15 +467,17 @@ describe('QQBot message-push SQL contract', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
it('grants only the seeded message-push menus to active super and admin roles after refactor seeding', () => {
|
it('grants only the seeded message-push menus to active super and admin roles after every menu seed', () => {
|
||||||
const roleGrant = extractMessagePushMenuRoleGrantStatement(seedSql);
|
for (const sql of [bootstrapSql, seedSql, vbenSql]) {
|
||||||
expect(roleGrant).toContain('insert ignore into admin_role_menu (role_id, menu_id)');
|
const roleGrant = extractMessagePushMenuRoleGrantStatement(sql);
|
||||||
expect(extractMenuRoleGrantIds(roleGrant)).toEqual(menuEntries.map(([id]) => id));
|
expect(roleGrant).toContain('insert ignore into admin_role_menu (role_id, menu_id)');
|
||||||
expect(roleGrant).toContain("role.role_code in ('super', 'admin')");
|
expect(extractMenuRoleGrantIds(roleGrant)).toEqual(menuEntries.map(([id]) => id));
|
||||||
expect(roleGrant).toContain('role.status = 1');
|
expect(roleGrant).toContain("role.role_code in ('super', 'admin')");
|
||||||
expect(roleGrant).toContain('role.is_deleted = 0');
|
expect(roleGrant).toContain('role.status = 1');
|
||||||
expect(roleGrant).toContain('menu.status = 1');
|
expect(roleGrant).toContain('role.is_deleted = 0');
|
||||||
expect(roleGrant).toContain('menu.is_deleted = 0');
|
expect(roleGrant).toContain('menu.status = 1');
|
||||||
|
expect(roleGrant).toContain('menu.is_deleted = 0');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
it('uses an exact mismatch CTE and null-safe predicates for every stable menu tuple', () => {
|
it('uses an exact mismatch CTE and null-safe predicates for every stable menu tuple', () => {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user