johndoh / globaladdressbook
为Roundcube添加全局地址簿
Requires
- php: >=7.0
- roundcube/plugin-installer: >=0.1.2
This package is auto-updated.
Last update: 2024-09-13 08:11:32 UTC
README
此插件为Roundcube添加基于SQL的全局地址簿。它可以按安装、IMAP主机或域名进行全局设置。
注意
这只是从GIT仓库的快照,不是GlobalAddressbook的稳定版本。它打算与Roundcube的GIT-master版本一起使用,并且可能不兼容旧版本。GlobalAddressbook的稳定版本可以从Roundcube插件仓库(1.0及以上)或GitHub仓库的发布部分获取。
许可协议
此插件遵循GNU通用公共许可证版本3+。
注意
安装
- 将此插件文件夹放入Roundcube的插件目录
- 将globaladdressbook添加到您的Roundcube配置中的$config['plugins']
注意:从GitHub下载插件时,您需要创建一个名为globaladdressbook的目录,并将文件放在其中,忽略下载的存档中的根目录。
配置
默认配置文件是plugins/globaladdressbook/config.inc.php.dist。将其重命名为plugins/globaladdressbook/config.inc.php
'name'
这是在Roundcube中向用户显示的地址簿名称。值可以是字符串或本地化名称的数组。如果使用数组,则键应为Roundcube本地化标识符,并且必须有一个名为'en_us'的键。所有数组键必须是小写。例如
'name' => [ 'en_us' => 'Global Addresses', 'ja_jp' => 'グローバル・アドレス', 'pt_pt' => 'Endereços Globais', ],
'user'
这是持有全局地址簿的虚拟用户名。用户名不需要属于有效的电子邮件账户。用户名将存储在Roundcube数据库中,但除非它属于您的服务器上的有效电子邮件账户,否则将无法登录Roundcube。
为访问Roundcube的每个人创建单个全局地址簿,将此选项设置为类似于:'[global_addressbook_user]'
为Roundcube服务的每个电子邮件域创建全局地址簿,将此选项设置为类似于:'global_addressbook@%d'
用户名可以包含以下宏,它们将按以下方式展开
- %d用登录用户名的域部分替换
- %h用会话信息中的imap主机替换
- %i用登录用户默认身份的域部分替换
注意。:还可以使用host
配置选项来覆盖插件默认的'localhost'。这支持相同的宏。
'perms'
限制用户在全局地址簿中执行的操作
- 0 - 全局地址簿只读
- 1 - 用户可以添加、编辑和删除联系人(完全权限)
- 2 - 用户可以添加但不能编辑或删除联系人
- 3 - 用户可以添加和编辑但不能删除联系人
注意。:当perms设置为0、2或3时,只有管理员用户才能将联系人导入全局地址簿。
提示:有关更多高级选项,请参阅提示 globaladdressbook_permissions
钩子。
'force_copy'
始终将联系人从全局地址簿复制到另一个地址簿,例如在拖放操作中使用。默认行为是将联系人移动。
'groups'
是否应在全局地址簿中提供联系人组
'admin'
管理员是始终具有完整读写访问权限的用户或用户组,即使地址簿设置为只读。以下选项可用:
- 要设置单个用户为管理员,则输入用户名作为字符串,如:
'admin' => 'admin@domain.com',
- 如果您希望将管理员权限赋予多个用户,则将用户名输入为数组,如:
'admin' => ['admin1@domain.com', 'admin2@domain.com'],
提示:有关更多高级选项,请参阅提示 globaladdressbook_permissions
钩子。
'autocomplete'
在编写电子邮件时,在自动完成菜单中显示此地址簿中的联系人
'check_safe'
在HTML消息中显示远程内联图像之前(除其他配置的地址簿外),使用全局地址簿中的地址来识别已知的发件人
'visibility'
用于定义哪些用户可以看到特定的地址簿。以下选项可用:
- 如果您希望限制对特定用户列表的访问,则将用户名输入为数组,如:
'visibility' => ['user2@domain.com', 'user2@domain.com'],
提示:有关更多高级选项,请参阅提示 globaladdressbook_permissions
钩子。
'allowed_hosts'
仅激活为所选邮件主机启用的 GlobalAddressbook。如果未设置,则允许所有邮件主机。
globaladdressbook_permissions 钩子
globaladdressbook_permissions 插件钩子允许动态设置相关配置选项的权限。参数:
- id: (string) 正在加载的地址簿的ID
- perms: (int) 'perms' 配置选项
- admin: (boolean) 如果地址簿处于管理员模式
- visibility: (boolean) 如果地址簿是可见的
返回
- perms: (int) 'perms' 配置选项
- admin: (boolean) 如果地址簿处于管理员模式
- visibility: (boolean) 如果地址簿是可见的
提示:您可以从配置文件内部将函数附加到插件钩子。
$api = rcube::get_instance()->plugins; $api->register_hook('globaladdressbook_permissions', function($p) { if (/* is admin */) { $p['admin'] = true; } return $p; });