imatic/user-bundle

Imatic User Bundle

Installs: 1 225

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 7

Forks: 1

Open Issues: 1

Type:symfony-bundle

v5.0.0 2021-11-26 12:23 UTC

README

Build Status

License: MIT

ImaticUserBundle

Roles

Global roles

Configuration

yaml

# app/config/security.yml

security:

# ...

role_hierarchy:

ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

Translation

Global roles are translated using the "roles" domain.

Model roles

Configuration

yaml

# app/config/config.yml

# Imatic user imatic_user: # ... security: role: model: namespaces: includes: - App excludes: - AppExampleBundleEntityExample # exclude single entity - AppFooBundleEntity # exclude all entities

Installation

1. Generate AppUserBundle

Generate and enable a local bundle called AppUserBundle.

This bundle will contain user-related entities and fixtures.

2. Download ImaticUserBundle using composer

yaml

"require": {

# ... "imatic/user-bundle": "^3.0"

}

3. Enable the bundle

php

<?php // app/AppKernel.php

public function registerBundles() { $bundles = array( // ... new FOSUserBundleFOSUserBundle(), new ImaticBundleUserBundleImaticUserBundle(), ); }

4. Configure the bundles

yaml

# app/config/config.yml

imports:

# ... - { resource: "@ImaticUserBundle/Resources/config/config.yml" } - { resource: "@AppUserBundle/Resources/config/config.yml" }

doctrine:

# ... orm: #... resolve_target_entities: # UserBundle ImaticBundleUserBundleModelUserInterface: ApUserBundleEntityUser ImaticBundleUserBundleModelGroupInterface: AppUserBundleEntityGroup

# Imatic user imatic_user: entities: user: AppUserBundleEntityUser group: AppUserBundleEntityGroup security: role: model: namespaces: includes: ~ excludes: ~ hierarchy: ~

5. Configure the security

yaml

# app/config/security.yml

security:
encoders:

SymfonyComponentSecurityCoreUserUserInterface: bcrypt

role_hierarchy:

ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
imatic_user_provider:

id: imatic_user.user_provider.username

firewalls:
dev:

pattern: ^/(_(profilercssjs)/ security: false

main:

pattern: ^/ form_login: provider: imatic_user_provider csrf_token_generator: security.csrf.token_manager logout: true anonymous: true switch_user: true

access_control:
  • { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  • { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
  • { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
  • { path: ^/, role: IS_AUTHENTICATED_FULLY }

6. Configure the routing

yaml

# app/config/routing.yml

imatic_user:

resource: "@ImaticUserBundle/Resources/config/routing.yml"