feat: support full community post editing
This commit is contained in:
@@ -204,7 +204,7 @@ FROM (
|
||||
SELECT '设置推荐' AS `name`, 'community.communityPost/setRecommend' AS `perms`
|
||||
UNION ALL SELECT '设置话题', 'community.communityPost/setTopic'
|
||||
UNION ALL SELECT '设置分类', 'community.communityPost/setCategory'
|
||||
UNION ALL SELECT '编辑内容', 'community.communityPost/editContent'
|
||||
UNION ALL SELECT '编辑帖子', 'community.communityPost/edit'
|
||||
) permission
|
||||
WHERE @post_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
@@ -224,7 +224,7 @@ WHERE menu.`perms` IN (
|
||||
'community.communityPost/setRecommend',
|
||||
'community.communityPost/setTopic',
|
||||
'community.communityPost/setCategory',
|
||||
'community.communityPost/editContent'
|
||||
'community.communityPost/edit'
|
||||
)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
SET @post_menu_id = COALESCE(
|
||||
(SELECT `id` FROM `la_system_menu` WHERE `perms` = 'community.communityPost/lists' LIMIT 1),
|
||||
(SELECT `id` FROM `la_system_menu` WHERE `component` = 'community/post/index' LIMIT 1)
|
||||
);
|
||||
|
||||
INSERT INTO `la_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@post_menu_id, 'A', '编辑内容', '', 0, 'community.communityPost/editContent', '', '', '', '', 0, 0, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
WHERE @post_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `la_system_menu` WHERE `perms` = 'community.communityPost/editContent'
|
||||
);
|
||||
|
||||
INSERT INTO `la_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT 1, menu.`id`
|
||||
FROM `la_system_menu` menu
|
||||
WHERE menu.`perms` = 'community.communityPost/editContent'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `la_system_role_menu` role_menu
|
||||
WHERE role_menu.`role_id` = 1
|
||||
AND role_menu.`menu_id` = menu.`id`
|
||||
);
|
||||
@@ -0,0 +1,71 @@
|
||||
SET @post_menu_id = COALESCE(
|
||||
(SELECT `id` FROM `la_system_menu` WHERE `perms` = 'community.communityPost/lists' LIMIT 1),
|
||||
(SELECT `id` FROM `la_system_menu` WHERE `component` = 'community/post/index' LIMIT 1)
|
||||
);
|
||||
|
||||
SET @old_edit_menu_id = (
|
||||
SELECT `id` FROM `la_system_menu`
|
||||
WHERE `perms` = 'community.communityPost/editContent'
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
SET @edit_menu_id = (
|
||||
SELECT `id` FROM `la_system_menu`
|
||||
WHERE `perms` = 'community.communityPost/edit'
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
UPDATE `la_system_menu`
|
||||
SET `name` = '编辑帖子',
|
||||
`perms` = 'community.communityPost/edit',
|
||||
`update_time` = UNIX_TIMESTAMP()
|
||||
WHERE `id` = @old_edit_menu_id
|
||||
AND @edit_menu_id IS NULL;
|
||||
|
||||
INSERT INTO `la_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@post_menu_id, 'A', '编辑帖子', '', 0, 'community.communityPost/edit', '', '', '', '', 0, 0, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
WHERE @post_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `la_system_menu` WHERE `perms` = 'community.communityPost/edit'
|
||||
);
|
||||
|
||||
SET @edit_menu_id = (
|
||||
SELECT `id` FROM `la_system_menu`
|
||||
WHERE `perms` = 'community.communityPost/edit'
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO `la_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT 1, @edit_menu_id
|
||||
WHERE @edit_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `la_system_role_menu`
|
||||
WHERE `role_id` = 1
|
||||
AND `menu_id` = @edit_menu_id
|
||||
);
|
||||
|
||||
INSERT INTO `la_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT old_role_menu.`role_id`, @edit_menu_id
|
||||
FROM `la_system_role_menu` old_role_menu
|
||||
WHERE old_role_menu.`menu_id` = @old_edit_menu_id
|
||||
AND @old_edit_menu_id IS NOT NULL
|
||||
AND @old_edit_menu_id <> @edit_menu_id
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `la_system_role_menu` current_role_menu
|
||||
WHERE current_role_menu.`role_id` = old_role_menu.`role_id`
|
||||
AND current_role_menu.`menu_id` = @edit_menu_id
|
||||
);
|
||||
|
||||
DELETE FROM `la_system_role_menu`
|
||||
WHERE `menu_id` = @old_edit_menu_id
|
||||
AND @old_edit_menu_id IS NOT NULL
|
||||
AND @old_edit_menu_id <> @edit_menu_id;
|
||||
|
||||
DELETE FROM `la_system_menu`
|
||||
WHERE `id` = @old_edit_menu_id
|
||||
AND @old_edit_menu_id IS NOT NULL
|
||||
AND @old_edit_menu_id <> @edit_menu_id;
|
||||
Reference in New Issue
Block a user