Я создаю новое приложение с фронтом и бэк-офисом, мой бэк-офис дает возможность создавать сообщества, а те сообщества, которые созданы в бэк-офисе, должны давать возможность быть узнанным в урле впереди, я не не знаю, как это сделать, ..
я пытался изменить свой security.yml так =>
access_control:
- { path: ^/\w+/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/login_admin, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_USER }
- { path: ^/admin, roles: ROLE_ADMIN }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
и в настоящее время я пытаюсь распознать общество в URL-адресе фронта, вот так (в моем config/routes.yaml) =>
salarie_index:
path: /{_clientname}/*
И это работает нормально, НО, когда я пытаюсь получить доступ к своему офису, он теперь рассматривается как общество >__<"
Я ожидаю, что смогу указать моей маршрутизации, что если имя клиента «admin», то оно не должно сопоставляться с этим маршрутом,...





Хотя мне непонятно, чего вы пытаетесь достичь, похоже, вы слишком усложняете это. Что удерживает вас от разных маршрутов?
Вы могли бы просто указать маршрут для своего администратора: /admin
И еще маршрут для ваших компаний (общества): /company/{_clientname}
Извиняюсь,
Я не могу этого сделать, потому что мой бэк-офис не зависит от компании, что означает, что мне вообще не нужна компания в URL-адресе, который, наоборот, нужен в URL-адресе фронта,...
На самом деле я думаю, что могу использовать конфигурацию для этой цели =>
маршруты.yml =>
#index:
# path: /
# controller: App\Controller\DefaultController::index
admin:
resource: "../../src/Controller/Admin/"
type: annotation
prefix: '/admin'
salarie:
resource: "../../src/Controller/Salarie/"
type: annotation
prefix: '/{_clientname}'
requirements:
_clientname: '^((\w+))+'
#_clientname: '^(((?!admin).)(\w+))+'
И этот security.yml:
security:
encoders:
App\Entity\User:
algorithm: auto
App\Entity\Salarie:
algorithm: auto
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers:
# used to reload user from session & other features (e.g. switch_user)
app_salarie_provider:
entity:
class: App\Entity\Salarie
property: email
app_admin_provider:
entity:
class: App\Entity\AdminUser
property: email
# used to reload user from session & other features (e.g. switch_user)
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|ico|js)/
security: false
admin_area:
anonymous: true
pattern: ^/admin
provider: app_admin_provider
form_login:
provider: app_admin_provider
login_path: login_admin
username_parameter: sign_in[email]
password_parameter: sign_in[password]
check_path: login_check_admin
logout:
path: /logout_admin
target: /admin
salarie:
anonymous: true
pattern: ^/\w+
form_login:
provider: app_salarie_provider
login_path: login_salarie
username_parameter: sign_in[email]
password_parameter: sign_in[password]
check_path: login_check_salarie
logout:
path: /logout
target: /
# activate different ways to authenticate
# https://symfony.com/doc/current/security.html#firewalls-authentication
# https://symfony.com/doc/current/security/impersonating_user.html
# switch_user: true
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
- { path: ^/\w+/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/, roles: ROLE_USER }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
С этими файлами похоже, что я получил результат, который искал!
В любом случае спасибо за ответ, хорошего дня о/