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 |
Please read the installation instructions before going deep with Members!
composer.json
"require" : {
"dachcom-digital/members" : "~5.0.0"
}
Add Bundle to bundles.php
:
return [
MembersBundle\MembersBundle::class => ['all' => true],
];
$ bin/console pimcore:bundle:install MembersBundle
$ 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
MembersUser
\MembersBundle\Adapter\User\AbstractUser
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
MembersGroup
\MembersBundle\Adapter\Group\AbstractGroup
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.
email
instead of username
for authenticationLearn more about the Members Restriction feature:
Before updating, please check our upgrade notes!
Copyright: DACHCOM.DIGITAL
For licensing details please visit LICENSE.md