你可以为用户添加/编辑角色和权限。角色就是一组具有预定义权限的用户,你可以在管理面板的用户列表页面切换用户角色。对于大多数权限,其含义可以直接从变量名推断出来。以下是对部分变量的更详细介绍。
-
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 time
INVITATIONS_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,
},
}