你可以为用户添加/编辑角色和权限。角色就是一组具有预定义权限的用户,你可以在管理面板的用户列表页面切换用户角色。对于大多数权限,其含义可以直接从变量名推断出来。以下是对部分变量的更详细介绍。
- 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 14 使用 monthly_download_traffic_limit 和 monthly_upload_traffic_limit 分别限制角色用户每月的下载、上传流量;monthly_download_traffic_limit_per_user 和 monthly_upload_traffic_limit_per_user 用于设置组织的成员人均流量配额,组织总配额为对应设置值乘以成员配额人数。流量分别统计,包括网页、共享链接和同步传输;可使用 500M、100G 等单位,空字符串表示不设置月度限制。超过配额时,对应传输速度降至 DOWNLOAD_LIMIT_WHEN_THROTTLE 或 UPLOAD_LIMIT_WHEN_THROTTLE 设定的速度(默认均为 1k,即 1 KB/s)。 Seafile 13 使用 monthly_rate_limit 和 monthly_rate_limit_per_user;以下配置示例采用 Seafile 14 的参数,使用 Seafile 13 时请保留原有的两个参数。 注意:配置速率限制后,需要在 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_download_traffic_limit': '100G', 'monthly_download_traffic_limit_per_user': '100G', 'monthly_upload_traffic_limit': '50G', 'monthly_upload_traffic_limit_per_user': '50G', '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_download_traffic_limit': '10G', 'monthly_download_traffic_limit_per_user': '10G', 'monthly_upload_traffic_limit': '5G', 'monthly_upload_traffic_limit_per_user': '5G', '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_download_traffic_limit': '100G', 'monthly_download_traffic_limit_per_user': '100G', 'monthly_upload_traffic_limit': '50G', 'monthly_upload_traffic_limit_per_user': '50G', '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_download_traffic_limit': '10G', 'monthly_download_traffic_limit_per_user': '10G', 'monthly_upload_traffic_limit': '5G', 'monthly_upload_traffic_limit_per_user': '5G', '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_download_traffic_limit': '100G', 'monthly_download_traffic_limit_per_user': '100G', 'monthly_upload_traffic_limit': '50G', 'monthly_upload_traffic_limit_per_user': '50G', '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_download_traffic_limit': '', 'monthly_download_traffic_limit_per_user': '', 'monthly_upload_traffic_limit': '', 'monthly_upload_traffic_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_download_traffic_limit': '', 'monthly_download_traffic_limit_per_user': '', 'monthly_upload_traffic_limit': '', 'monthly_upload_traffic_limit_per_user': '', 'can_choose_office_suite': True, 'monthly_ai_credit_per_user': -1, 'can_use_sso_in_multi_tenancy': True, },}