用户角色与权限

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