Add frontend user authentication and document restriction to pimcore.
Release | Supported Pimcore Versions | Supported Symfony Versions | Release Date | Maintained | Branch |
---|---|---|---|---|---|
5.x | 11.0 |
6.2 |
28.09.2023 | Feature Branch | master |
4.x | 10.5 - 10.6 |
5.4 |
22.11.2021 | Unsupported | 4.x |
3.x | 6.0 - 6.8 |
3.4 , ^4.4 |
21.07.2019 | Unsupported | 3.x |
2.5 | 5.4 , 5.5 , 5.6 , 5.7 , 5.8 |
3.4 |
18.07.2019 | Unsupported | 2.5 |
1.5 | 4.0 |
-- | 07.07.2017 | Unsupported | pimcore4 |
- Create Members in backend
- Allow Members to register in frontend
- Restrict documents, objects and assets to specific user roles
Please read the installation instructions before going deep with Members!
- Add code below to your
composer.json
"require" : {
"dachcom-digital/members" : "~5.0.0"
}
Add Bundle to bundles.php
:
return [
MembersBundle\MembersBundle::class => ['all' => true],
];
- Execute:
$ bin/console pimcore:bundle:install MembersBundle
- Execute:
$ bin/console doctrine:migrations:migrate --prefix 'MembersBundle\Migrations'
Read more about the required classes below).
bin/console members:install:class
It is not possible to merge security configurations from multiple locations, including bundles. Instead, you have to move them to
one single config file, e.g. config/packages/security.yaml
. Please adopt security_auth_manager.yaml
and merge your own firewall configuration into one single file.
MembersBundle does not include any routes per default. Otherwise, it would be hard for you to change or override included routes.
Include all Routes
# config/routes.yaml
app:
resource: '@MembersBundle/config/pimcore/routing/all.yaml'
Just include some Routes
# config/routes.yaml
members_auth:
resource: '@MembersBundle/config/pimcore/routing/auth.yaml'
prefix: /{_locale}/members #change your prefix if you have to.
Since Members should be the one and only frontend authentication bundle, we need to add the most flexibility as possible. But no worries, it's still simple to integrate.
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
Use the-o
argument to also install the SsoIdentity Class
You need two classes: User and Group. So let's create it:
User
- Create a class and call it
MembersUser
- Add parent class:
\MembersBundle\Adapter\User\AbstractUser
- Add fields:
Name | Field Type | Comment |
---|---|---|
userName | Input | |
Input | Note: Do not add this field if you're using the CMF. | |
confirmationToken | Input | must set to it read only |
lastLogin | Date & Time | must set to it read only |
password | Password | Hide it, if you want. Note: Do not add this field if you're using the CMF. |
passwordRequestedAt | Date & Time | must set to it read only |
groups | User Group | This field comes with Members |
membersUser
is the default name, you may want to change it. Read here how to achieve that.
If you want to use the Customer Data Framework you need to do some further work. Read more about it here.
You want to enable the SSO Feature in Members? Read more about it here.
Group
- Create a class and call it
MembersGroup
- Add parent class:
\MembersBundle\Adapter\Group\AbstractGroup
- Add fields:
Name | Field Type | Comment |
---|---|---|
name | Input | |
roles | Multiselection | Set "Options Provider Class or Service Name" to @MembersBundle\CoreExtension\Provider\RoleOptionsProvider |
membersGroup
is the default name, you may want to change it. Read here how to achieve that.
Feel 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.
You're almost there, just check the email configuration and you're good to go.
- Auth Identifier Use
email
instead ofusername
for authentication - Custom Class Names
- Frontend Routes & Views
- Available Events
- Custom Form Types
- Registration Types
- Email Configuration
- Groups
- Roles
- Use the Pimcore Customer Framework with Members
Learn more about the Members Restriction feature:
- Brief Overview
- Restricted Navigation
- Restricted Routing
- Restricted Listing
- Protected Asset Downloader
Before updating, please check our upgrade notes!
DACHCOM.DIGITAL AG, Löwenhofstrasse 15, 9424 Rheineck, Schweiz
dachcom.com, dcdi@dachcom.ch
Copyright © 2024 DACHCOM.DIGITAL. All rights reserved.
For licensing details please visit LICENSE.md