承接 foundata/identity_from_config 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

foundata/identity_from_config

Composer 安装命令:

composer require foundata/identity_from_config

包简介

Populate and maintain user identities automatically on each login, based on corresponding data from a static config file.

README 文档

README

A Roundcube plugin to populate and maintain user email identities automatically on each login, based on corresponding data from the plugin's config file. A major use case is to maintain identities of shared mailboxes (like info@example.com) in a consistent and easy way, e.g. when using a shared IMAP namespace.

You can use this plugin in combination with identity_from_directory which uses LDAP or Active Directory to maintain email identities.

Table of Contents

Installation

Installation using Composer

The following command installs the plugin package via Composer into plugins/identity_from_config:

php composer.phar require --update-no-dev -o "foundata/identity_from_config:*"

If you want to use the current development version from Git, use -o "foundata/identity_from_config:dev-main". Please confirm with y when Composer asks you whether you want to enable the plugin in the Roundcube configuration. Alternatively, add identity_from_config to Roundcube's $config['plugins'] array by hand.

You can now configure the plugin.

Installation from release tarball

Download the latest identity_from_config-vX.Y.Z.tar.gz tarball (do not use the "Source code" archives Github creates automatically for each release). Extract it into plugins/, all files have to be in plugins/identity_from_config/ afterwards.

Useful snippet if you have got a shell available on your target server:

# 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-config/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-config/releases/download/v${version}/identity_from_config-v${version}.tar.gz" \
  > "/tmp/identity_from_config.tar.gz"

# extract and cleanup
cd "${roundcube_install_dir}/plugins" && tar -xzvf "/tmp/identity_from_config.tar.gz" && rm "/tmp/identity_from_config.tar.gz"

Configure the plugin and add identity_from_config to Roundcube's $config['plugins'] array to enable it.

Updating

Update using Composer

The following command updates the plugin package via Composer:

php composer.phar update --no-dev -o "foundata/identity_from_config:*"`

Update from release tarball

Updating is as simple as overwriting the existing files. Just follow the installation instructions again to get the newest release. This should be a low-risk operation as there are no database schema changes performed by this plugin and this project adheres to Semantic Versioning. The changelog will inform you of any manual actions required during an upgrade, typically only necessary for major version increments.

Configuration

  • Copy the template config.inc.php.dist to config.inc.php (Composer may already have done this for you)
  • Now edit plugins/identity_from_config/config.inc.php as you need. The inline comments describe every config value in detail.

Some additional notes:

  • All plugin actions are only triggered during a user's login. So logout and login again to test a new configuration.
  • This plugin is technically compatible with all values of Roundcube's $config['identities_level'] config option. However, a value of 1 (user can edit all params but not the email address as well as add or delete identities in the UI) or 3 (user can edit all params but not the email address and cannot add or delete identities in the UI) makes most sense.

When used with the identity_from_directory plugin

Make sure to exclude the identities created by the identity_from_config plugin from the automatic cleanup of unmanaged identities of the identity_from_directory plugin:

  1. Edit /plugins/identity_from_directory/config.inc.php
  2. Set $config['identity_from_directory_exclude_delete_unmanaged_regex'] to a fitting value like '/^(office|info)@example\.(com|net)$/im', which excludes identities with the email addresses office@example.com, info@example.com, office@example.net and info@example.net from automatic cleanup (case insensitive)

Compatibility

  • Roundcube 1.6 or higher.
  • PHP 7.4 or higher.
  • No special database requirements. This plugin does not adapt the database schema and is using Roundcube's built-in actions and hooks to handle the identity data.

The plugin may work with older versions then listed above, but this is not tested nor supported. We recommend using the latest stable Roundcube version and PHP 8.x, which the plugin is most tested with.

Licensing, copyright

Copyright (c) 2024, foundata GmbH (https://foundata.com)

This project is licensed under the GNU General Public License v3.0 or later (SPDX-License-Identifier: GPL-3.0-or-later), see LICENSES/GPL-3.0-or-later.txt for the full text.

The REUSE.toml file provides detailed licensing and copyright information in a human- and machine-readable format. This includes parts that may be subject to different licensing or usage terms, such as third-party components. The repository conforms to the REUSE specification. You can use reuse spdx to create a SPDX software bill of materials (SBOM).

REUSE status

Author information

This project was created and is maintained by foundata. If you like it, you might buy them a coffee.

foundata/identity_from_config 适用场景与选型建议

foundata/identity_from_config 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 20 次下载、GitHub Stars 达 9, 最近一次更新时间为 2024 年 05 月 13 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「identity」 「signature」 「contacts」 「addressbook」 「shared-mailbox」 「shared-namespace」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 foundata/identity_from_config 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 foundata/identity_from_config 我们能提供哪些服务?
定制开发 / 二次开发

基于 foundata/identity_from_config 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 20
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 21
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 9
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-or-later
  • 更新时间: 2024-05-13