foundata/identity_from_directory

根据相应的LDAP或Active Directory用户数据,在每个登录时自动填充和维护用户身份。

v2.2.1 2024-05-13 23:33 UTC

This package is auto-updated.

Last update: 2024-09-14 00:20:22 UTC


README

这是一个Roundcube 插件,用于在每个登录时自动填充和维护用户电子邮件身份,基于相应的LDAP或Active Directory数据。

目录

截图

具有以下Active Directory数据的使用者

Image of Active Directory user properties displayed in a domain controllers GUI

并且签名模板设置为

$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身份

Image of resulting Roundcube user identities displayed in the web UI of the elastic skin

安装

使用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更新

以下命令通过插件包使用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)

REUSE status

作者信息

此项目由foundata创建并维护。如果您喜欢它,您可以为他们买一杯咖啡。此插件受到new_user_identity插件的强烈启发。