PHPackages                             au-vic-gov-dpc/user-management - 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. au-vic-gov-dpc/user-management

AbandonedArchivedDrupal-module

au-vic-gov-dpc/user-management
==============================

This module allows you to group users based on their available e-mail addresses and add multiple e-mail addresses to users

1579[2 PRs](https://github.com/ackama/dpc-user-management-module/pulls)PHP

Since Oct 19Pushed 4y ago4 watchersCompare

[ Source](https://github.com/ackama/dpc-user-management-module)[ Packagist](https://packagist.org/packages/au-vic-gov-dpc/user-management)[ RSS](/packages/au-vic-gov-dpc-user-management/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (3)Used By (0)

dpc-user-management-module
==========================

[](#dpc-user-management-module)

[![Test Suite](https://github.com/ackama/dpc-user-management-module/workflows/Test%20Suite/badge.svg)](https://github.com/ackama/dpc-user-management-module/workflows/Test%20Suite/badge.svg)

Drupal module for DPC user management

Module Development
------------------

[](#module-development)

We assume the following development style (using the docker terminology to refer to your computer as the "host" to distinguish it from the containers):

- Files are edited on your host system using your editor of choice.
- **All** commands (`composer`, `npm`, `drush`, `phpunit` etc.) are run from within their respective container via `docker-compose exec`.

This template has a separate (single command) step to install Drupal which you must run after you have started the containers (see below).

We did this to avoid baking things like DB credentials into the images. If you decide you do want to bake some of those steps into the image then you can move commands from `dev/config/services/drupal/root/setup.sh` into `Dockerfile.drupal.dev`.

The `dev/config/` dir is organised first by service (see `docker-compose.yml` for the list of services) and then by the path within the container that the file/folder will be copied/mounted i.e.

```
dev/config/services/{NAME_OF_DOCKER_COMPOSE_SERVICE}/{PATH_THAT_FILE_IS_COPIED_OR_MOUNTED_IN_THE_SERVICE}

```

### Getting started

[](#getting-started)

Please note that each command below is prefixed by a shell prompt which tells you whether this command should be run on your docker host (`your-computer`below) or one of the containers.

```
# IMPORTANT: All the commands below are assumed to be run from the root directory

## Terminal 1 ########

## start all the services (add --detach arg to this command if you
## want it to return control of your terminal to you)
you@your-computer$ docker-compose up --build

## Terminal 2 ########

## install Drupal (edit config/services/drupal/root/setup.sh if you want to
## change how Drupal is installed e.g. download and enable modules etc.)
you@your-computer$ docker-compose exec drupal /root/setup.sh

## Now your drupal site should be available.

## To run commands e.g. composer or mysql, we open a shell in the drupal
## container and run them from there
you@your-computer$ docker-compose exec drupal bash

## When you have a shell in the drupal container you can ...
## ... follow along with the nginx logs
drupal-container$ tail -f /var/log/nginx/error.log
drupal-container$ tail -f /var/log/nginx/access.log

## ... connect to mysql
drupal-container$ mysql

## ... working with JS
drupal-container$ cd html/modules/custom/dpc_user_management
drupal-container$ npm run sass # or whatever commands you have defined in npm
```

If you prefer you can run commands directly via docker-compose without having to open the bash shell first e.g.

```
## Alternatively you can pass the command you want to run directly to
## `docker-compose exec` e.g. run mysql CLI client
you@your-computer$ docker-compose exec drupal mysql
```

After you install Drupal (see above), the following should be available in your web browser:

-  (Drupal in the `drupal` container)
-  (Browsersync in the `frontend` container)

### Adding external third party drupal dependencies

[](#adding-external-third-party-drupal-dependencies)

In the case you need to add custom dependencies that can't be managed through composer, add them inside `./dev/modules/custom` or `./dev/themes/custom` accordingly.

If your custom module is in a separate git repo then you can clone into that dir and that will also be fine.

You will also need to uncomment the appropriate lines in the `docker-compose.yml` file

### Access to dependencies on your host

[](#access-to-dependencies-on-your-host)

Composer and docker-compose are configured so dependencies are installed into the project under `./html/` and `./vendor/`, without cluttering your project's codebase and without affecting the container's workspace

```
you@your-computer$ composer install
```

### Running Tests Manually

[](#running-tests-manually)

```
you@your-computer$ docker-compose exec drupal bash

## NB: VERY IMPORTANT: YOU MUST RUN TESTS AS www-data USER
## We have to run PHPUnit as a non-root user (otherwise it seems to fall back to
## running as the 'nobody' user who has no permissions to do anything)
root@drupal-container> su www-data
www-data@drupal-container> cd /var/www
www-data@drupal-container> phpunit --verbose modules/custom/my-module-under-development/
```

### Running tests as CI does

[](#running-tests-as-ci-does)

This runs all tests the same way CI does.

```
you@your-computer$ docker-compose exec drupal /root/run-ci.sh
```

### Auditing your dependencies locally

[](#auditing-your-dependencies-locally)

CI runs these checks for every PR but you can run them like this:

#### PHP

[](#php)

```
you@your-computer$ docker run --rm -v `pwd`:/opt/php/ oxcom/php-security-checker:alpine --
```

#### NodeJS

[](#nodejs)

```
you@your-computer$ npx audit-app
```

### Drupal admin credentials

[](#drupal-admin-credentials)

The default credentials (set by env vars in `docker-compose.yml`) are:

```
Username: admin
Password: admin

```

### Documentation

[](#documentation)

- Drupal API Reference
- Drupal coding standards
- Drupal Core Changelog

### Caveats

[](#caveats)

- The Drupal site is in cache disabled mode for to make templating/frontend easier.
- **Accessing the site as an anonymous user still makes use of caching even when local development settings have been enabled. You must be logged in to view your site with caches disabled.**

### Cleaning up

[](#cleaning-up)

```
## clean up (-v also deletes the volume that stores the MySQL data so only use
## it if that's the result you want)
you@your-computer$ docker-compose down -v

```

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity31

Early-stage or recently created project

 Bus Factor1

Top contributor holds 94.7% 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/193157?v=4)[Matías Halles](/maintainers/halles)[@halles](https://github.com/halles)

![](https://www.gravatar.com/avatar/2c4e0d0b0e43750be050e09dba14467f8c7712e61a1b9f9ed0c4ff6f558607ae?d=identicon)[G-Rath](/maintainers/G-Rath)

![](https://avatars.githubusercontent.com/u/1941990?v=4)[Ackama](/maintainers/ackama)[@ackama](https://github.com/ackama)

![](https://avatars.githubusercontent.com/u/335127?v=4)[jse](/maintainers/jse)[@jse](https://github.com/jse)

---

Top Contributors

[![halles](https://avatars.githubusercontent.com/u/193157?v=4)](https://github.com/halles "halles (460 commits)")[![eoinkelly](https://avatars.githubusercontent.com/u/599867?v=4)](https://github.com/eoinkelly "eoinkelly (25 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

### Embed Badge

![Health badge](/badges/au-vic-gov-dpc-user-management/health.svg)

```
[![Health](https://phpackages.com/badges/au-vic-gov-dpc-user-management/health.svg)](https://phpackages.com/packages/au-vic-gov-dpc-user-management)
```

PHPackages © 2026

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