你可以为用户添加/编辑角色和权限。角色就是一组具有预定义权限的用户,你可以在管理面板的用户列表页面切换用户角色。对于大多数权限,其含义可以直接从变量名推断出来。以下是对部分变量的更详细介绍。
- role_quota 用于为某个角色的用户设置配额。例如,我们可以通过添加 'role_quota': '100g' 将 employee(员工)的配额设置为 100G,而其他角色用户则使用默认配额。
设置 role_quota 后,当具有该角色的用户登录 Seafile 时会生效。如果你希望立即看到效果,也可以手动修改 seafile-db.RoleQuota。
- can_add_public_repo 用于设置某个角色是否可以创建公共资料库(所有登录用户共享),默认值为 False。
自 11.0.9 专业版 起,新增了 can_share_repo,用于限制用户共享资料库的能力。
当全局配置 CLOUD_MODE = True 时,can_add_public_repo 选项不会生效。
- can_create_wiki 和 can_publish_wiki 用于控制某个角色是否可以创建 Wiki 和发布 Wiki。(已发布的 Wiki 会有一个特殊的 URL,可以被匿名用户访问)。
- storage_ids 权限用于为具有特定角色的用户分配存储后端。
- upload_rate_limit 和 download_rate_limit 用于限制不同角色用户的上传和下载速度。
注意:配置速率限制后,需要在 seafile-server-latest 目录下运行以下命令以使配置生效:
./seahub.sh python-env python3 seahub/manage.py set_user_role_upload_download_rate_limit
- can_drag_drop_folder_to_sync:允许或禁止用户通过拖放文件夹进行同步。
- can_export_files_via_mobile_client:允许或禁止用户通过移动端导出文件。
Seafile 自带两个内置角色:default(默认) 和 guest(访客)。
默认用户是一个普通用户,权限如下:
'default':{
'can_add_repo':True,
'can_share_repo':True,
'can_add_group':True,
'can_view_org':True,
'can_add_public_repo':False,
'can_use_global_address_book':True,
'can_generate_share_link':True,
'can_generate_upload_link':True,
'can_send_share_link_mail':True,
'can_invite_guest':False,
'can_drag_drop_folder_to_sync':True,
'can_connect_with_android_clients':True,
'can_connect_with_ios_clients':True,
'can_connect_with_desktop_clients':True,
'can_export_files_via_mobile_client':True,
'storage_ids':[],
'role_quota':'',
'can_create_wiki':True,
'can_publish_wiki':True,
'upload_rate_limit':0,# 单位: kb/s
'download_rate_limit':0,
'monthly_rate_limit':'',
'monthly_rate_limit_per_user':'',
'can_choose_office_suite':True,
'monthly_ai_credit_per_user':-1,
'can_use_sso_in_multi_tenancy':True,
}而访客用户只能读取系统中的文件/文件夹,其权限如下:
'guest':{
'can_add_repo':False,
'can_share_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_send_share_link_mail':False,
'can_invite_guest':False,
'can_drag_drop_folder_to_sync':False,
'can_connect_with_android_clients':False,
'can_connect_with_ios_clients':False,
'can_connect_with_desktop_clients':False,
'can_export_files_via_mobile_client':False,
'storage_ids':[],
'role_quota':'',
'can_create_wiki':False,
'can_publish_wiki':False,
'upload_rate_limit':0,
'download_rate_limit':0,
'monthly_rate_limit':'',
'monthly_rate_limit_per_user':'',
'can_choose_office_suite':False,
'can_use_sso_in_multi_tenancy':False,
}编辑内置角色
如果你想修改内置角色的权限,例如允许默认用户邀请访客,或者允许访客用户查看组织中的资料库,可以在 seahub_settings.py 中添加如下配置,并将对应的权限设为 True。
ENABLED_ROLE_PERMISSIONS={
'default':{
'can_add_repo':True,
'can_share_repo':True,
'can_add_group':True,
'can_view_org':True,
'can_add_public_repo':False,
'can_use_global_address_book':True,
'can_generate_share_link':True,
'can_generate_upload_link':True,
'can_send_share_link_mail':True,
'can_invite_guest':False,
'can_drag_drop_folder_to_sync':True,
'can_connect_with_android_clients':True,
'can_connect_with_ios_clients':True,
'can_connect_with_desktop_clients':True,
'can_export_files_via_mobile_client':True,
'storage_ids':[],
'role_quota':'',
'can_create_wiki':True,
'can_publish_wiki':True,
'upload_rate_limit':2000,# unit: kb/s
'download_rate_limit':4000,
'monthly_rate_limit':'',
'monthly_rate_limit_per_user':'',
'can_choose_office_suite':True,
'monthly_ai_credit_per_user':-1,
'can_use_sso_in_multi_tenancy':True,
},
'guest':{
'can_add_repo':False,
'can_share_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_send_share_link_mail':False,
'can_invite_guest':False,
'can_drag_drop_folder_to_sync':False,
'can_connect_with_android_clients':False,
'can_connect_with_ios_clients':False,
'can_connect_with_desktop_clients':False,
'can_export_files_via_mobile_client':False,
'storage_ids':[],
'role_quota':'',
'can_create_wiki':False,
'can_publish_wiki':False,
'upload_rate_limit':100,
'download_rate_limit':200,
'monthly_rate_limit':'',
'monthly_rate_limit_per_user':'',
'can_choose_office_suite':False,
'can_use_sso_in_multi_tenancy':False,
}}更多关于访客邀请功能
具有 can_invite_guest 权限的用户可以邀请组织外部的人作为访客。
要启用此功能,除了赋予用户 can_invite_guest 权限外,还需要在 seahub_settings.py 中添加以下配置:
ENABLE_GUEST_INVITATION=True
# invitation expire timeINVITATIONS_TOKEN_AGE=72# hours重启后,具有 can_invite_guest 权限的用户会在主页侧边栏看到 Invite People(邀请用户) 区域。
用户只需输入被邀请人的邮箱地址,系统会自动发送邀请链接邮件给对方。
提示:
如果你想屏蔽某些邮箱地址的邀请,可以定义黑名单,例如:
INVITATION_ACCEPTER_BLACKLIST = ["a@a.com", "*@a-a-a.com", r".*@(foo|bar).com", ]
这样,邮箱地址 "a@a.com"、任何以 "@a-a-a.com" 结尾的邮箱,以及以 "@foo.com" 或 "@bar.com" 结尾的邮箱都将被禁止使用。
添加自定义角色
如果你想新增一个角色并分配给部分用户,例如新增角色 employee(员工),其权限为:可以邀请访客、可以创建公共资料库、并拥有与默认用户相同的其他权限,可以在 seahub_settings.py 中添加如下配置:
ENABLED_ROLE_PERMISSIONS={
'default':{
'can_add_repo':True,
'can_share_repo':True,
'can_add_group':True,
'can_view_org':True,
'can_add_public_repo':False,
'can_use_global_address_book':True,
'can_generate_share_link':True,
'can_generate_upload_link':True,
'can_send_share_link_mail':True,
'can_invite_guest':False,
'can_drag_drop_folder_to_sync':True,
'can_connect_with_android_clients':True,
'can_connect_with_ios_clients':True,
'can_connect_with_desktop_clients':True,
'can_export_files_via_mobile_client':True,
'storage_ids':[],
'role_quota':'',
'can_create_wiki':True,
'can_publish_wiki':True,
'upload_rate_limit':2000,# unit: kb/s
'download_rate_limit':4000,
'monthly_rate_limit':'',
'monthly_rate_limit_per_user':'',
'can_choose_office_suite':True,
'monthly_ai_credit_per_user':-1,
'can_use_sso_in_multi_tenancy':True,
},
'guest':{
'can_add_repo':False,
'can_share_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_send_share_link_mail':False,
'can_invite_guest':False,
'can_drag_drop_folder_to_sync':False,
'can_connect_with_android_clients':False,
'can_connect_with_ios_clients':False,
'can_connect_with_desktop_clients':False,
'can_export_files_via_mobile_client':False,
'storage_ids':[],
'role_quota':'',
'can_create_wiki':False,
'can_publish_wiki':False,
'upload_rate_limit':100,
'download_rate_limit':200,
'monthly_rate_limit':'',
'monthly_rate_limit_per_user':'',
'can_choose_office_suite':False,
'can_use_sso_in_multi_tenancy':False,
},
'employee':{
'can_add_repo':True,
'can_share_repo':True,
'can_add_group':True,
'can_view_org':True,
'can_add_public_repo':True,
'can_use_global_address_book':True,
'can_generate_share_link':True,
'can_generate_upload_link':True,
'can_send_share_link_mail':True,
'can_invite_guest':True,
'can_drag_drop_folder_to_sync':True,
'can_connect_with_android_clients':True,
'can_connect_with_ios_clients':True,
'can_connect_with_desktop_clients':True,
'can_export_files_via_mobile_client':True,
'storage_ids':[],
'role_quota':'',
'can_create_wiki':True,
'can_publish_wiki':True,
'upload_rate_limit':500,
'download_rate_limit':800,
'monthly_rate_limit':'',
'monthly_rate_limit_per_user':'',
'can_choose_office_suite':True,
'monthly_ai_credit_per_user':-1,
'can_use_sso_in_multi_tenancy':True,
},
}