-- 2026-05-05
-- F1-5b BE-1: manager 角色去除 view_tasks 权限
--
-- 背景: Wave 1 走查发现 manager 角色用户进入 task-list 页面收到 403 "权限不足"。
-- 根因定位: require_permission 通过,但 task_manager._get_assistant_id 因
-- manager 在 user_assistant_binding 无有效绑定而抛 403,detail 与权限错误同名。
--
-- 设计决策(Neo 2026-05-05): task-list 是助教个人工作台业务概念,
-- manager(店长)角色没有"我自己的任务"业务场景,监督需求由 board-coach
-- 等汇总看板覆盖。从权限矩阵层面移除 manager 的 view_tasks。
--
-- 影响:
-- - manager 登录后小程序 tabBar 不再显示"任务" tab(getVisibleTabs 自动隐藏)
-- - manager 直接调用 GET /api/xcx/tasks 仍返回 403,但根因变为 require_permission
--   拦截而非 _get_assistant_id 的语义错位
-- - coach / head_coach 角色 view_tasks 权限不变,助教工作台正常使用
--
-- 兼容性:
-- - 不改 schema,仅 seed 数据 DELETE
-- - 已登录的 manager 用户 access_token 中 roles=[manager] 不变,但下次请求
--   /api/xcx/me 拿到的 permissions 列表立即少了 view_tasks(get_user_permissions
--   每次请求都查 DB,无缓存)
-- - 前端 tabBar 在 onShow 时调 checkPageAccess + getVisibleTabs 重算,自动隐藏
--
-- 回滚:
-- INSERT INTO auth.role_permissions (role_id, permission_id)
-- SELECT
--     (SELECT id FROM auth.roles WHERE code = 'manager'),
--     (SELECT id FROM auth.permissions WHERE code = 'view_tasks');

BEGIN;

DELETE FROM auth.role_permissions
WHERE role_id = (SELECT id FROM auth.roles WHERE code = 'manager')
  AND permission_id = (SELECT id FROM auth.permissions WHERE code = 'view_tasks');

COMMIT;
