如何自定义用户角色?
-
如何定义注册应用用户的角色?开发的应用有好几个管理员,管理员可以访问所有的数据,没有权限控制;普通用户都需要设置访问权限~
-
@武君 参考如下操作命令:
-- 创建一个角色表,用以简单管理用户的角色,比如role_name是admin表示管理员 -- user_id是用户的uuid,对应前端的user.id create table user_roles( "user_id" uuid references auth.users NOT NULL, "role_name" text not null ) -- 创建一个函数,判断用户是否为admin CREATE FUNCTION is_admin() RETURNS boolean LANGUAGE sql AS $func$ select EXISTS ( SELECT * FROM user_roles WHERE (user_id= auth.uid() and role_name = 'admin') ) $func$; -- 对于需要管理权限的表,都开启RLS并创建policy create policy "管理员可以对该表进行任意操作" on <your_table_name> for all using( is_admin() ) with check( is_admin() )