Laravel 5.7 - как определить супер-пользователя для управления регистрацией всех пользователей - PullRequest
0 голосов
/ 08 ноября 2018

нужна помощь по аутентификации пользователя Laravel. мои знания о Laravel очень малы, я имел опыт развертывания веб-приложения на основе чистого / чистого PHP (никогда не имел опыта работы с фреймворком).

Идея состоит в том, чтобы позволить оператору ввести первого и только одного пользователя в систему через стандартный процесс регистрации Laravel, и этот пользователь автоматически станет суперпользователем.

Функция суперпользователя заключается в управлении регистрацией обычного пользователя (в сеансе суперпользователя) путем создания пользователя и пароля и определения роли обычных пользователей.

Я определяю таблицу пользователя следующим образом, добавляю столбец 'user_role' для различающихся ролей между пользователями.

    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->char('user_role')->nullable();
        $table->rememberToken();
        $table->timestamps();
    });

Значение 'user_role' для суперпользователя должно быть 0, в то время как другая роль обычного пользователя должна быть числами от 1 до 9.

Будет отображаться содержимое / просмотры каждого раздела веб-страницы в зависимости от значения user_role.

нужна помощь, как:

  1. отображать user-registration page/url, если ни один пользователь не определен в таблице пользователей.
  2. Мне нужно проверять 'user_role' каждый раз, когда мне нужно отобразить раздел страницы. как этого добиться?

1 Ответ

0 голосов
/ 08 ноября 2018

Из вашей структуры таблицы я предполагаю, что вы управляете ролями в таблице пользователей. Теперь, когда вы хотите разрешить определенную роль пользователя для какой-либо части, просто проверьте роль пользователя.

if(Auth::user()->user_role==0){
 //do something its super user
  }

В шаблоне лезвия вы можете проверить следующим образом.

@if(Auth::user()->user_role==0)
<!--do some thing, its super user-->
@endif

Показать регистрационную форму, если в таблице нет пользователя. В своем блейде вы можете выбрать данные из таблицы пользователей, а затем проверить, пуста ли таблица пользователей.

<?php $users=App\User::all(); ?>

@if($users ===null)
 <!--users table is empty show registration form-->
@endif
...