{"id":20213953,"url":"https://github.com/dachcom-digital/pimcore-members","last_synced_at":"2025-04-06T20:13:03.401Z","repository":{"id":41067054,"uuid":"54724369","full_name":"dachcom-digital/pimcore-members","owner":"dachcom-digital","description":"Pimcore Object, Asset and Document Restriction \u0026 Frontend Authentication","archived":false,"fork":false,"pushed_at":"2024-03-12T12:14:27.000Z","size":949,"stargazers_count":53,"open_issues_count":5,"forks_count":35,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-04-13T22:06:11.756Z","etag":null,"topics":["authentication","cug","frontend","members","pimcore","user","user-registration"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dachcom-digital.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-25T14:35:42.000Z","updated_at":"2024-06-21T15:35:59.422Z","dependencies_parsed_at":"2024-06-21T15:35:51.723Z","dependency_job_id":"fa39bad0-d33a-4051-947e-68841e05dc19","html_url":"https://github.com/dachcom-digital/pimcore-members","commit_stats":{"total_commits":313,"total_committers":23,"mean_commits":"13.608695652173912","dds":"0.16293929712460065","last_synced_commit":"6ea5ac55604bc5308b465d6f439d385e766d53ab"},"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dachcom-digital%2Fpimcore-members","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dachcom-digital%2Fpimcore-members/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dachcom-digital%2Fpimcore-members/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dachcom-digital%2Fpimcore-members/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dachcom-digital","download_url":"https://codeload.github.com/dachcom-digital/pimcore-members/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247543593,"owners_count":20955865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","cug","frontend","members","pimcore","user","user-registration"],"created_at":"2024-11-14T06:13:04.602Z","updated_at":"2025-04-06T20:13:03.373Z","avatar_url":"https://github.com/dachcom-digital.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pimcore Members Bundle\nAdd frontend user authentication and document restriction to pimcore.\n\n[![Software License](https://img.shields.io/badge/license-GPLv3-brightgreen.svg?style=flat-square)](LICENSE.md)\n[![Software License](https://img.shields.io/badge/license-DCL-white.svg?style=flat-square\u0026color=%23ff5c5c)](LICENSE.md)\n[![Latest Release](https://img.shields.io/packagist/v/dachcom-digital/members.svg?style=flat-square)](https://packagist.org/packages/dachcom-digital/members)\n[![Tests](https://img.shields.io/github/actions/workflow/status/dachcom-digital/pimcore-members/.github/workflows/codeception.yml?branch=master\u0026style=flat-square\u0026logo=github\u0026label=codeception)](https://github.com/dachcom-digital/pimcore-members/actions?query=workflow%3ACodeception+branch%3Amaster)\n[![PhpStan](https://img.shields.io/github/actions/workflow/status/dachcom-digital/pimcore-members/.github/workflows/php-stan.yml?branch=master\u0026style=flat-square\u0026logo=github\u0026label=phpstan%20level%204)](https://github.com/dachcom-digital/pimcore-members/actions?query=workflow%3A\"PHP+Stan\"+branch%3Amaster)\n\n### Release Plan\n\n| Release | Supported Pimcore Versions        | Supported Symfony Versions | Release Date | Maintained     | Branch   |\n|---------|-----------------------------------|----------------------------|--------------|----------------|----------|\n| **5.x** | `11.0`                            | `6.4`                      | 28.09.2023   | Feature Branch | master   |\n| **4.x** | `10.5 - 10.6`                     | `5.4`                      | 22.11.2021   | Unsupported    | 4.x      |\n| **3.x** | `6.0` - `6.8`                     | `3.4`, `^4.4`              | 21.07.2019   | Unsupported    | 3.x      |\n| **2.5** | `5.4`, `5.5`, `5.6`, `5.7`, `5.8` | `3.4`                      | 18.07.2019   | Unsupported    | 2.5      |\n| **1.5** | `4.0`                             | --                         | 07.07.2017   | Unsupported    | pimcore4 |\n\n## Features\n* Create Members in backend\n* Allow Members to register in frontend\n* Restrict documents, objects and assets to specific user roles\n\n***\n\n## Installation\nPlease read the installation instructions before going deep with Members!\n\n### Composer Installation\n1. Add code below to your `composer.json`    \n\n```json\n\"require\" : {\n    \"dachcom-digital/members\" : \"~5.1.0\"\n}\n```\n\nAdd Bundle to `bundles.php`:\n```php\nreturn [\n    MembersBundle\\MembersBundle::class =\u003e ['all' =\u003e true],\n];\n```\n\n- Execute: `$ bin/console pimcore:bundle:install MembersBundle`\n\n## Upgrading\n- Execute: `$ bin/console doctrine:migrations:migrate --prefix 'MembersBundle\\Migrations'`\n\n#### Optional: Class Installation\n\u003e Read more about the required classes [below](./README.md#class-installation)).\n\n```bash\nbin/console members:install:class\n```\n\n### Security Installation\nIt is not possible to merge security configurations from multiple locations, including bundles. Instead, you have to move them to\none single config file, e.g. `config/packages/security.yaml`. Please adopt [security_auth_manager.yaml](./config/packages/security_auth_manager.yaml)\nand merge your own firewall configuration into one single file.\n\n### Route Installation\nMembersBundle does not include any routes per default. Otherwise, it would be hard for you to change or override included routes. \n\n**Include all Routes**\n```yaml\n# config/routes.yaml\napp:\n    resource: '@MembersBundle/config/pimcore/routing/all.yaml'\n```\n\n**Just include some Routes**\n```yaml\n# config/routes.yaml\nmembers_auth:\n    resource: '@MembersBundle/config/pimcore/routing/auth.yaml'\n    prefix: /{_locale}/members #change your prefix if you have to.\n```\n\n### Class Installation\nSince Members should be the one and only frontend authentication bundle, we need to add the most flexibility as possible.\nBut no worries, it's still simple to integrate.\n\n\u003e There is also a class installer command. If you're not using any special class configuration, feel free to use this command: `$ bin/console members:install:class`\n\u003e Use the `-o` argument to also install the SsoIdentity Class \n\nYou need two classes: User and Group. So let's create it:\n\n*User*  \n1. Create a class and call it `MembersUser`\n2. Add parent class: `\\MembersBundle\\Adapter\\User\\AbstractUser`\n3. Add fields:\n\n| Name                | Field Type  | Comment                                                                                                         |\n|---------------------|-------------|-----------------------------------------------------------------------------------------------------------------|\n| userName            | Input       |                                                                                                                 |\n| email               | Input       | **Note:** Do not add this field if you're using the [CMF](docs/20_ClassCustomization.md).                       |\n| confirmationToken   | Input       | must set to it read only                                                                                        |\n| lastLogin           | Date \u0026 Time | must set to it read only                                                                                        |\n| password            | Password    | Hide it, if you want. **Note:** Do not add this field if you're using the [CMF](docs/20_ClassCustomization.md). |\n| passwordRequestedAt | Date \u0026 Time | must set to it read only                                                                                        |\n| groups              | User Group  | This field comes with Members                                                                                   |\n\n\u003e `membersUser` is the default name, you may want to change it. Read [here](docs/20_ClassCustomization.md) how to achieve that.\n\n#### Customer Data Framework\nIf you want to use the [Customer Data Framework](https://github.com/pimcore/customer-data-framework) you need to do some further work. Read more about it [here](docs/300_CustomerDataFw.md).\n\n#### SSO Login\nYou want to enable the SSO Feature in Members? Read more about it [here](./docs/SSO/20_Installation.md).\n\n*Group*  \n1. Create a class and call it `MembersGroup`\n2. Add parent class: `\\MembersBundle\\Adapter\\Group\\AbstractGroup`\n3. Add fields:\n\n| Name  | Field Type     | Comment                                                                                                     |\n|-------|----------------|-------------------------------------------------------------------------------------------------------------|\n| name  | Input          |                                                                                                             |\n| roles | Multiselection | Set \"Options Provider Class or Service Name\" to `@MembersBundle\\CoreExtension\\Provider\\RoleOptionsProvider` |\n\n\u003e `membersGroup` is the default name, you may want to change it. Read [here](docs/20_ClassCustomization.md) how to achieve that.\n\nFeel free to add additional fields since those are just the required ones. That's it. Members will use those classes to manage authentication and group management.\n\n### Email Configuration\nYou're almost there, just check the [email configuration](docs/70_EmailConfiguration.md) and you're good to go.\n\n***\n\n### User Management: Further Information\n- [Auth Identifier](docs/10_AuthIdentifier.md) Use `email` instead of `username` for authentication\n- [Custom Class Names](docs/20_ClassCustomization.md)\n- [Frontend Routes \u0026 Views](docs/30_FrontendRoutes.md)\n- [Available Events](docs/40_Events.md)\n- [Custom Form Types](docs/50_CustomFormTypes.md)\n- [Registration Types](docs/60_RegistrationTypes.md)\n- [Email Configuration](docs/70_EmailConfiguration.md)\n- [Groups](docs/80_Groups.md)\n- [Roles](docs/90_Roles.md)\n- [Use the Pimcore Customer Framework with Members](docs/300_CustomerDataFw.md)\n\n***\n\n## Restrictions\nLearn more about the Members Restriction feature:\n\n- [Brief Overview](docs/200_Restrictions.md)\n- [Restricted Navigation](docs/210_RestrictedNavigation.md)\n- [Restricted Routing](docs/220_RestrictedRouting.md)\n- [Restricted Listing](docs/230_RestrictListing.md)\n- [Protected Asset Downloader](docs/240_AssetProtection.md)\n\n***\n\n## Single Sign On (SSO) with OAuth2\n- [Overview](./docs/SSO/10_Overview.md)\n- [Integration Types](./docs/SSO/11_IntegrationTypes.md)\n- [Resource Mapping](./docs/SSO/12_ResourceMapping.md)\n- [Installation](./docs/SSO/20_Installation.md)\n- [Twig Extensions](./docs/SSO/30_TwigExtensions.md)\n\n## Upgrade Info\nBefore updating, please [check our upgrade notes!](UPGRADE.md)\n\n## License\n**DACHCOM.DIGITAL AG**, Löwenhofstrasse 15, 9424 Rheineck, Schweiz  \n[dachcom.com](https://www.dachcom.com), dcdi@dachcom.ch  \nCopyright © 2025 DACHCOM.DIGITAL. All rights reserved.  \n\nFor licensing details please visit [LICENSE.md](LICENSE.md)  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdachcom-digital%2Fpimcore-members","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdachcom-digital%2Fpimcore-members","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdachcom-digital%2Fpimcore-members/lists"}