Как создать двух авторизованных пользователей (администратор, клиент) на одной странице входа?

Вы добавляете virtual Base* clone() const = 0; в свой базовый класс и соответствующим образом реализуете его в своих классах Derived. Если ваш Base не абстрактный, вы можете, конечно, вызвать его конструктор-копию, но это немного опасно: если вы забудете реализовать его в производном классе, вы получите (возможно, нежелательную) нарезку.

Если вы не хотите дублировать этот код, вы можете использовать CRTP idiom для реализации функции через шаблон:

template 
class DerivationHelper : public Base
{
public:
  virtual Base* clone() const
  {
    return new Derived(static_cast(*this)); // call the copy ctor.
  }
};

class Derived1 : public DerivationHelper  { ... };
class Derived2 : public DerivationHelper  { ... };

0
задан Harish 17 January 2019 в 05:13
поделиться

1 ответ

Я думаю, что самый простой подход для достижения этой цели - создать в таблице флаг для ролей, например, создать ключ is_admin для пользователей, которые являются администраторами. После, чем во время входа в систему, добавьте также проверку для пользователя, является ли флаг is_admin истинным или ложным. Если это правда, то создайте промежуточное ПО для этого и добавьте это промежуточное ПО в маршруты для администратора.

0
ответ дан Abhijeet Verma 17 January 2019 в 05:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: