定制 glance-project/egroup-service 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

glance-project/egroup-service

Composer 安装命令:

composer require glance-project/egroup-service

包简介

Abstraction on top of the e-groups web service

README 文档

README

This is an abstraction on top of the CERN e-groups web service.

Getting started

The official documentation can be found on the following URLs:

Usage

The e-group provider is created with the user credentials.

$egroupProvider = EgroupProvider::createWithUserCredentials(
    $user         = getenv("USER"),
    $password     = getenv("PASSWORD"),
);

Every method returns a Response object. This object has the following methods:

  • transactionId() - Returns the id of the transaction.
  • warnings() - Returns an array of warnings. Empty by default.
  • egroup() - Returns an Egroup object (when applicable). Null by default.

Any error thrown will be an instance of EgroupException. The error message is the message returned by the web service.

EgroupProvider::findEgroupByName()

This method accepts a string (the e-group name) as parameter.

$response = $egroupProvider->findEgroupByName("lhcb-glance-admins");

echo($response->egroup()->name());

// Output:
// lhcb-glance-admins

EgroupProvider::synchronizeEgroup()

The synchronizeEgroup method can be used to create or update an e-group. The method accepts an Egroup object as parameter.'

Creating an e-group:

$egroup = Egroup::create(
    $name = "foo-bar",
    $topic = "LHCb",
    $owner = Owner::create(851203),
    $members = [
        Person::create(382894),
        StaticEgroup::create("lhcb-static-glance-admins")
        DynamicEgroup::create("lhcb-dynamic-glance-admins")
    ],
    $adminEgroup = "lhcb-glance-admins",
    $description = "This was created as a test",
    $type = Type::staticEgroup(),
    $usage = Usage::securityMailing(),
    $privacy = Privacy::members(),
    $selfSubscription = SelfSubscription::members(),
    $emailProperties = EmailProperties::create(
        MailPostingRestrictions::create(
            $postingRestrictions = PostingRestrictions::ownerAdminsAndOthers(),
            $otherRecipientsAllowedToPost = [
                Person::create(840720)
            ],
        ),
        $senderAuthenticationEnabled = false,
        $whoReceivesDeliveryErrors = WhoReceivesDeliveryErrors::sender(),
        $maxMailSize = MaxMailSize::tenMb(),
        $archiveProperties = ArchiveProperties::active()
    );
    $egroupsWithPrivileges = [
        EgroupWithPrivileges::createWithAdminPrivilegeFromString("lhcb-fence-support"),
    ],
    $selfSubscriptionEgroups = [
        SelfSubscriptionEgroup::createWithApprovalNotNeededFromId(10215717),
    ]
);

$response = $egroupProvider->synchronizeEgroup($egroup);

echo($response->egroup()->name());

// Output:
// foo-bar

Updating an e-group:

$response = $egroupProvider->findEgroupByName("foo-bar");

$egroup = $response->egroup();

$egroup->updateMembers([
    Person::create(851203)
]);

$response = $egroupProvider->synchronizeEgroup($egroup);

echo(count($response->egroup()->members()));
echo($response->egroup()->members()[0]->personId());

// Output:
// 1
// 851203

EgroupProvider::updateEmailProperties()

The method accepts an Egroup object as parameter.'

$response = $egroupProvider->findEgroupByName("foo-bar");

$egroup = $response->egroup();

$egroup->emailProperties()->updateMaxMailSize(MaxMailSize::fiveMb());

$response = $egroupProvider->updateEmailProperties($egroup);

echo($response->egroup()->emailProperties()->maxMailSize()->toString());

// Output:
// 5

EgroupProvider::addEgroupMembers()

The method accepts a string (the e-group name), an array (this array can contain Person, StaticEgroup and DynamicEgroup objects) and the overwriteMembers (boolean) as parameters. If overwriteMembers is set to true, the members of the e-group will be overwritten with the members passed as parameter. If overwriteMembers is set to false, the members passed as parameter will be added to the e-group. It is false by default.

$members = [
    Person::create(382894),
];

$response = $egroupProvider->addEgroupMembers("foo-bar", $members, true);

echo(count($response->egroup()->members()));
echo($response->egroup()->members()[0]->personId());

// Output:
// 1
// 382894

EgroupProvider::removeEgroupMembers()

The method accepts a string (the e-group name), an array as parameters (this array can contain Person, StaticEgroup and DynamicEgroup objects).

$members = [
    Person::create(382894),
];

$response = $egroupProvider->removeEgroupMembers("foo-bar", $members);

echo(count($response->egroup()->members()));

// Output:
// 0

EgroupProvider::delete()

The method accepts a string (the e-group name) as parameter.

$response = $egroupProvider->delete("foo-bar");

echo($response->egroup()));

// Output:
// Null

glance-project/egroup-service 适用场景与选型建议

glance-project/egroup-service 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.58k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 11 月 09 日, 在 PHP 生态内属于活跃度较高的组件。

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

围绕 glance-project/egroup-service 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

  • 总下载量: 1.58k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

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

其他信息

  • 授权协议: proprietary
  • 更新时间: 2023-11-09