Symfony2 несколько ролей для структуры рынка (FOSUser/PUGXMultiUser)

Я работаю над приложением на торговой площадке с Symfony2.
У меня есть две роли пользователя: buyer а также seller,

Роль по умолчанию - это buyer поскольку все зарегистрированные пользователи смогут использовать торговую площадку в качестве покупателя. Я сейчас пользуюсь FOSUserBundle для управления пользователями, но я недавно застрял, когда я хотел реализовать seller часть приложения.

Мне нужно иметь три службы "регистрации", либо:

  • Пользователь решает зарегистрироваться как buyerэто основная форма регистрации, которую я настроил с помощью FOSUserBundle
  • Пользователь решает зарегистрироваться как seller, тогда мне нужна другая форма регистрации с более обязательными полями, но в любом случае пользователь с ролью seller также будет иметь роль buyer которая является базовой ролью для всех пользователей.
  • Пользователь в настоящее время зарегистрирован как buyer решает обновить свой аккаунт до seller один, будут запрошены только дополнительные поля

Поскольку каждый зарегистрированный пользователь имеет buyer Роль моих занятий:

class User extends BaseUser implements UserInterface, \Serializable // Buyer
{
   // ...

   /**
    * @ORM\OneToOne(targetEntity="Seller",inversedBy="user")
    * @ORR\JoinColumn(name="seller_id",referencedColumn="id")
    **/
    private $seller;
}

class Seller
{
    // ...

}

Для того, чтобы иметь возможность обрабатывать несколько регистрационных форм, я недавно попытался использовать PUGXMultiUserBundle, но я не знаю, как заставить это работать с моим кодом.

Я использую отношение OneToOne, чтобы связать buyer а также seller но PUGXMultiUserBundle требует использования наследования с дискриминатором.
Это не проблема, я могу изменить свой код и уже пытался это сделать, но меня поразило то, что User класс должен быть абстрактным.

Из того, что я понял, мои занятия должны быть такими:

User extends BaseUser (abstract)
Buyer extends User
Seller extends User

Но у меня есть:

User extends BaseUser (semantically my Buyer class)
Seller extends User

Что я должен делать? Как я могу реорганизовать свою иерархию классов? Является ли PUGXMultiUserBundle подходящим решением для того, что я хочу?

Спасибо

0 ответов

Другие вопросы по тегам