PHPackages                             unlcms/unl\_user - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. unlcms/unl\_user

ActiveDrupal-module[Authentication &amp; Authorization](/categories/authentication)

unlcms/unl\_user
================

Populate user data with values from LDAP &amp; allow searching for users to add.

1.11(1mo ago)05181[1 issues](https://github.com/unlcms/unl_user/issues)1PHP

Since Jan 5Pushed 1mo ago4 watchersCompare

[ Source](https://github.com/unlcms/unl_user)[ Packagist](https://packagist.org/packages/unlcms/unl_user)[ RSS](/packages/unlcms-unl-user/feed)WikiDiscussions 8.x-1.x Synced 3w ago

READMEChangelog (10)Dependencies (4)Versions (18)Used By (1)

UNL\_USER module
================

[](#unl_user-module)

This module does the following

- allows searching and importing users into the system
- stores UNL information, such as the 'eduPersonAffiliation', to help with access restrictions

Why LDAP as a source of user information instead of directory.unl.edu?
----------------------------------------------------------------------

[](#why-ldap-as-a-source-of-user-information-instead-of-directoryunledu)

LDAP gives us access to users that have their privacy flag set. This is important so that we can add any users to sites regardless of weather or not their privacy flag is set.

Note that we use directory.unl.edu as a backup source of information in the case that either LDAP is down or the LDAP credentials are not provides/bad.

Getting and setting UNL user data
---------------------------------

[](#getting-and-setting-unl-user-data)

UNL Specific user data is retrieved when an account is first created. Every login there-after will trigger an update, but it may not happen right away.

To manually update user data:

```
$helper = new Helper();
$user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
$helper->updateUserData($user);

```

To retrieve user data

```
/**
* @var UserDataInterface $userDataService
*/
$userDataService = \Drupal::service('user.data');

//Specific field
$primaryAffiliation = $userDataService->get('unl_cas', \Drupal::currentUser()->id(), 'primaryAffiliation');

//All UNL user data
$allUserData = $userDataService->get('unl_cas', \Drupal::currentUser()->id());

```

Testing
-------

[](#testing)

Tests are built in and can be run with the core `run-tests.sh` script

```
php ./core/scripts/run-tests.sh --module unl_user --verbose --url "http://your-base-url.com/unlcms2/"

```

###  Health Score

51

—

FairBetter than 95% of packages

Maintenance90

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 72% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~201 days

Recently: every ~145 days

Total

12

Last Release

49d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/446357?v=4)[Eric Rasmussen](/maintainers/ericras)[@ericras](https://github.com/ericras)

![](https://www.gravatar.com/avatar/6e031eb579cc69ba56d0e76d472cfe212a93ea180852d524e37ab12f0d12b02b?d=identicon)[macburgee1](/maintainers/macburgee1)

---

Top Contributors

[![ericras](https://avatars.githubusercontent.com/u/446357?v=4)](https://github.com/ericras "ericras (18 commits)")[![mfairchild365](https://avatars.githubusercontent.com/u/498678?v=4)](https://github.com/mfairchild365 "mfairchild365 (4 commits)")[![macburgee1](https://avatars.githubusercontent.com/u/1521132?v=4)](https://github.com/macburgee1 "macburgee1 (3 commits)")

### Embed Badge

![Health badge](/badges/unlcms-unl-user/health.svg)

```
[![Health](https://phpackages.com/badges/unlcms-unl-user/health.svg)](https://phpackages.com/packages/unlcms-unl-user)
```

###  Alternatives

[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6941.5M396](/packages/drupal-core-recommended)[openeuropa/oe_authentication

Authentication against the OpenEuropa Authentication service.

17327.2k5](/packages/openeuropa-oe-authentication)[blackbit_digital_commerce/pimcore-ldap

Ldap bundle for Pimcore

2660.9k](/packages/blackbit-digital-commerce-pimcore-ldap)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
