Navigation

    MemFireDB论坛

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    如何自定义用户角色?

    MemFireDB用户问答
    2
    2
    2
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 武
      武君 last edited by

      如何定义注册应用用户的角色?开发的应用有好几个管理员,管理员可以访问所有的数据,没有权限控制;普通用户都需要设置访问权限~

      A 1 Reply Last reply Reply Quote 0
      • A
        admin @武君 last edited by

        @武君 参考如下操作命令:

        
        -- 创建一个角色表,用以简单管理用户的角色,比如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()  )
        
        1 Reply Last reply Reply Quote 0
        • First post
          Last post