用户角色与权限

6.0 版本开始,管理员可以在用户管理界面为一个用户赋予一个角色,不同角色可以配置不同权限,目前支持 10 种权限。

6.1 版本开始,我们添加了一个新的权限 relo_quota(角色配额),该权限用来给某个用户的角色设置空间配额。例如,我们可以通过添加 'role_quota': '100g' 为 employee 角色设置100GB的空间配额,同时其他用户还是使用默认的空间配额。

6.3.6 版本开始,我们添加了一个新的权限 can_add_public_repo(是否可以创建公共资料库,默认为'False');如果需要赋予某个角色可以创建公共资料库的权限,需要为该角色添加配置项'can_add_public_repo': True,。7.0 版本开始,普通用户创建公共资料库的权限还将受到 “系统管理”->“设置” 界面中的ENABLE_USER_CREATE_ORG_REPO选项控制。注意,如果您配置了全局的CLOUD_MODE = True那么can_add_public_repo选项将不会再生效。

7.0 版本开始, 默认所有用户都可以发布一个资料库,如果您认为这样引入了泄密方面的安全隐患,您可以通过设置用户角色权限来限制某些用户不可以使用该功能。为此,需要禁用相应角色的"can_publish_repo"权限:'can_publish_repo': False

can_add_repo                        # 允许创建资料库
can_add_group                       # 允许创建群组
can_view_org
can_add_public_repo                 # 允许创建全员可见的公共资料库
can_use_global_address_book         # 允许使用全局通讯录(比如共享时能搜索到其他的用户)
can_publish_repo                    # 允许公开发布资料库
can_generate_share_link             # 允许创建共享外链
can_generate_upload_link            # 允许创建上传外链
can_invite_guest                    # 允许邀请访客,访客不能拥有自己的文件
can_connect_with_android_clients    # 允许使用安卓客户端登录
can_connect_with_ios_clients        # 允许使用 iOS 户端登录
can_connect_with_desktop_clients    # 允许使用桌面客户端登录

Seafile 内建两种用户角色:defaultguest(访客用户)。

default 用户实际就是一个普通 Seafile 用户,对应默认权限列表如下:

'default': {
    'can_add_repo': True,
    'can_add_group': True,
    'can_view_org': True,
    'can_add_public_repo': True,
    'can_use_global_address_book': True,
    'can_publish_repo': True,
    'can_generate_share_link': True,
    'can_generate_upload_link': True,
    'can_invite_guest': False,
    'can_connect_with_android_clients': True,
    'can_connect_with_ios_clients': True,
    'can_connect_with_desktop_clients': True,
},

guest 用户对应默认权限列表如下:

'guest': {
    'can_add_repo': False,
    'can_add_group': False,
    'can_view_org': False,
    'can_add_public_repo': False,
    'can_use_global_address_book': False,
    'can_generate_share_link': False,
    'can_generate_upload_link': False,
    'can_invite_guest': False,
    'can_connect_with_android_clients': False,
    'can_connect_with_ios_clients': False,
    'can_connect_with_desktop_clients': False,
},

编辑内建用户角色的权限

通过在 seahub_settings.py 里加入相应配置,可以更改内建用户角色的默认权限。

比如你想让 default 用户可以邀请 guest,让 guest 用户可以查看公共资料库(而不改变其他权限),在 seahub_settings.py 里加入以下配置即可:

ENABLED_ROLE_PERMISSIONS = {
    'default': {
        'can_add_repo': True,
        'can_add_group': True,
        'can_view_org': True,
        'can_add_public_repo': True,
        'can_use_global_address_book': True,
        'can_publish_repo': True,
        'can_generate_share_link': True,
        'can_generate_upload_link': True,
        'can_invite_guest': True,
        'can_connect_with_android_clients': True,
        'can_connect_with_ios_clients': True,
        'can_connect_with_desktop_clients': True,
    },
    'guest': {
        'can_add_repo': False,
        'can_add_group': False,
        'can_view_org': True,
        'can_add_public_repo': False,
        'can_use_global_address_book': False,
        'can_generate_share_link': False,
        'can_generate_upload_link': False,
        'can_invite_guest': False,
        'can_connect_with_android_clients': False,
        'can_connect_with_ios_clients': False,
        'can_connect_with_desktop_clients': False,
    }
}

注意对比 default 用户的 can_invite_guest 设置,和 guest 用户的 can_view_org 设置。

关于邀请访客功能

如果想要使用 邀请访客 功能,除了赋予用户 can_invite_guest 权限外,还需在 seahub_settings.py 中加入以下配置:

ENABLE_GUEST_INVITATION = True

# invitation expire time
INVITATIONS_TOKEN_AGE = 72 # hours

重启 Seafile 后, 可以邀请访客的用户,页面左侧会多出 邀请 导航标签。用户提供被邀请人的邮箱后,被邀请人会收到邀请链接。

自定义用户角色

如果你想增加一个用户角色,比如 employee 角色,而此角色 不具有 “邀请访客”、“生成上传/下载外链” 权限,并且_允许该角色用户“创建公共资料库”_,在 seahub_settings.py 中加入以下配置:

ENABLED_ROLE_PERMISSIONS = {
    'default': {
        'can_add_repo': True,
        'can_add_group': True,
        'can_view_org': True,
        'can_add_public_repo': True,
        'can_use_global_address_book': True,
        'can_publish_repo': True,
        'can_generate_share_link': True,
        'can_generate_upload_link': True,
        'can_invite_guest': False,
        'can_connect_with_android_clients': True,
        'can_connect_with_ios_clients': True,
        'can_connect_with_desktop_clients': True,
    },
    'guest': {
        'can_add_repo': False,
        'can_add_group': False,
        'can_view_org': False,
        'can_add_public_repo': False,
        'can_use_global_address_book': False,
        'can_generate_share_link': False,
        'can_generate_upload_link': False,
        'can_invite_guest': False,
        'can_connect_with_android_clients': False,
        'can_connect_with_ios_clients': False,
        'can_connect_with_desktop_clients': False,
    },
    'employee': {
        'can_add_repo': True,
        'can_add_group': True,
        'can_view_org': True,
        'can_add_public_repo': False,
        'can_use_global_address_book': True,
        'can_publish_repo': False,
        'can_generate_share_link': False,
        'can_generate_upload_link': False,
        'can_invite_guest': False,
        'can_connect_with_android_clients': True,
        'can_connect_with_ios_clients': True,
        'can_connect_with_desktop_clients': True,
        'role_quota': '100g',
    },
}

注意 employee 用户的 can_invite_guestcan_generate_share_linkcan_generate_upload_linkcan_add_public_repo 设置。

Last modified by 郑杰, 2023-07-12

编辑内建用户角色的权限
关于邀请访客功能
自定义用户角色