johndoh/globaladdressbook

为Roundcube添加全局地址簿

2.1 2022-06-18 07:12 UTC

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;
});