Add frontend user authentication and document restriction to pimcore.
Release | Supported Pimcore Versions | Supported Symfony Versions | Release Date | Maintained | Branch |
---|---|---|---|---|---|
3.x | 6.0 - 6.6 |
3.4 , ^4.0 |
21.07.2019 | Feature Branch | dev-master |
2.5 | 5.4 , 5.5 , 5.6 , 5.7 , 5.8 |
3.4 |
18.07.2019 | Bugfix only | 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" : "~3.1.0"
}
After you have installed the Members Bundle via composer, open pimcore backend and go to Tools
=> Extension
:
- Click the green
+
Button inEnable / Disable
row - Click the green
+
Button inInstall/Uninstall
row
After you have installed the Members Bundle via composer:
- Execute:
$ bin/console pimcore:bundle:enable MembersBundle
- Execute:
$ bin/console pimcore:bundle:install MembersBundle
Read more about the required classes below).
bin/console members:install:class
Members does not include any routes per default. Otherwise it would be hard for you to change or override included routes.
Include all Routes
# app/config/routing.yml
app:
resource: '@MembersBundle/Resources/config/pimcore/routing/all.yml'
Just include some Routes
# app/config/routing.yml
members_auth:
resource: '@MembersBundle/Resources/config/pimcore/routing/auth.yml'
prefix: /{_locale}/members #change your prefix if you have to.
Unlike members1, this bundle does not install any classes for you any more. 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 your 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.
- Custom Class Names
- Frontend Routes & Views
- Available Events
- Custom Form Types
- Registration Types
- Email Configuration
- Groups
- Roles
- Use LuceneSearch with Members
- 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!
Copyright: DACHCOM.DIGITAL
For licensing details please visit LICENSE.md