foundata / identity_from_directory
根据相应的LDAP或Active Directory用户数据,在每个登录时自动填充和维护用户身份。
Requires
- php: ^7.4 || ^8.0
- roundcube/plugin-installer: ^0.3
README
这是一个Roundcube 插件,用于在每个登录时自动填充和维护用户电子邮件身份,基于相应的LDAP或Active Directory数据。
目录
截图
具有以下Active Directory数据的使用者
并且签名模板设置为
$config['identity_from_directory_signature_template_html'] = ' <p> Kind regards<br /> <strong>%name_html%</strong><br /> %organization_html% </p> <p> mailto: <a href="mailto:%email_url%">%email_html%</a><br /> phone: <a href="tel:%phone_url%">%phone_html%</a><br /> fax: <a href="tel:%fax_url%">%fax_html%</a><br /> web: <a href="%website_url%">%website_html%</a> </p>';
在用户登录后会产生以下Roundcube身份
安装
使用Composer安装
以下命令通过插件包使用Composer安装到plugins/identity_from_directory
php composer.phar require --update-no-dev -o "foundata/identity_from_directory:*"
如果您想使用Git中的当前开发版本,请使用-o "foundata/identity_from_directory:dev-main"
。当Composer询问您是否要启用插件时,请使用y
确认。或者,您可以手动将identity_from_directory
添加到Roundcube的$config['plugins']
数组中。
现在您可以配置插件了。
从发布tarball安装
下载最新的identity_from_directory-vX.Y.Z.tar.gz
tarball(不要使用Github为每个发布自动创建的"Source code"存档)。将其提取到plugins/
,所有文件都必须在plugins/identity_from_directory/
中。
如果您在目标服务器上有shell,以下是一些有用的代码片段
# set Rouncube's installation path, adapt if needed roundcube_install_dir="/var/lib/roundcube" # get version number of the latest release version="$(curl -s -L https://api.github.com/repos/foundata/roundcube-plugin-identity-from-directory/releases/latest | jq -r '.tag_name' | sed -e 's/^v//g')" printf '%s\n' "${version}" # download curl -L "https://github.com/foundata/roundcube-plugin-identity-from-directory/releases/download/v${version}/identity_from_directory-v${version}.tar.gz" \ > "/tmp/identity_from_directory.tar.gz" # extract and cleanup cd "${roundcube_install_dir}/plugins" && tar -xzvf "/tmp/identity_from_directory.tar.gz" && rm "/tmp/identity_from_directory.tar.gz"
配置插件并将identity_from_directory
添加到Roundcube的$config['plugins']
数组中,以启用它。
更新
使用Composer更新
php composer.phar update --no-dev -o "foundata/identity_from_directory:*"`
从发布tarball更新
更新就像覆盖现有文件一样简单。只需再次遵循安装说明即可获取最新版本。这应该是一项低风险操作,因为此插件没有执行数据库架构更改,并且此项目遵循语义版本控制。变更日志将通知您在升级过程中需要执行的任何手动操作,通常仅适用于主要版本的增加。
配置
- 将模板
config.inc.php.dist
复制到config.inc.php
(Composer可能已经为您做了这件事) - 现在编辑
plugins/identity_from_directory/config.inc.php
,如需。详细的内联注释描述了每个配置值。
一些附加说明
- 所有插件操作仅在用户登录时触发。因此,请注销并再次登录以测试新的配置。
- 此插件在技术上与Roundcube的
$config['identities_level']
配置选项的所有值都兼容。然而,1
(用户可以编辑所有参数,但不能编辑电子邮件地址以及添加或删除UI中的身份)或3
(用户可以编辑所有参数,但不能编辑电子邮件地址且不能在UI中添加或删除身份)最为合理。 - 如果您想要自动删除可能不想要的身份,请设置
$config['identity_from_directory_deleteunmanaged'] = true
。 - 要支持在Active Directory的
proxyAddresses
字段中搜索别名地址,请设置$config['identity_from_directory_handle_proxyaddresses'] = true
。它可能包含CSV字符串,如smtp:foo@exmaple.com,smtp:bar@example.net
。
兼容性
- Roundcube 1.6或更高版本。
- PHP 7.4或更高版本。
- 没有特殊的数据库要求。此插件不修改数据库模式,并使用Roundcube的内置动作和钩子来处理身份数据。
此插件可能与上述版本更早的版本一起工作,但尚未测试也不受支持。我们建议使用最新的稳定版Roundcube和PHP 8.x,这是插件测试最多的。
许可,版权
版权所有(c)2024,foundata GmbH (https://foundata.com)
此项目采用GNU通用公共许可证v3.0或更高版本许可(SPDX-License-Identifier: GPL-3.0-or-later
),请参阅LICENSES/GPL-3.0-or-later.txt
获取全文。
.reuse/dep5
文件以人类和机器可读的格式提供了详细的许可和版权信息。这包括可能受不同许可或使用条款约束的部分,例如第三方组件。仓库符合REUSE规范,您可以使用reuse spdx
创建SPDX软件物料清单(SBOM)。
作者信息
此项目由foundata创建并维护。如果您喜欢它,您可以为他们买一杯咖啡。此插件受到new_user_identity
插件的强烈启发。