Angular - отображать панель мониторинга и другие component.html на основе user_id - PullRequest
1 голос
/ 19 мая 2019

Невозможно отобразить component.html и панель мониторинга на основе user_id

Я использую Angular для подключения к конечным точкам Laravel.У меня есть модель User и другие модели.Все остальные таблицы содержат user_id.Существует две панели управления: панель администратора и панель пользователя.

Laravel

    public function login()
    {
        $credentials = request(['email', 'password']);

        if (!$token = auth()->attempt($credentials)) {
            return response()->json(['error' => 'Email or Password doesn\'t exisit'], 401);
        }

        return $this->respondWithToken($token);
    } 

модели для пользователя, ученика и назначения:


    protected $fillable = [
        'name', 'email', 'password', 'username',
    ];

    protected $fillable = [
        'name', 'class', 'user_id',
    ];
    protected $fillable = [
        'title', 'valid_date', 'content', 'user_id',
    ];

Угловой: Сервис

  private baseUrl = 'http://localhost/cloudengine-sandbox/cloudsandboxbackend/public/api';
  //private baseUrl = '/api';


  constructor(private http:HttpClient) { }

  register(data){
    return this.http.post(`${this.baseUrl}/register`, data)
  }
  login(data){
    return this.http.post(`${this.baseUrl}/login`, data)
  }

login.component.ts

  onSubmit() {
  this.Jarwis.login(this.form).subscribe(
     data => this.handleResponse(data),
     error => this.handleError(error)
  );
  }

  handleResponse(data){
 this.Token.handle(data.access_token);
 this.Auth.changeAuthStatus(true);
 //this.user.loggedInUser = user;
 this.router.navigateByUrl('/admindashboard');
  }

Когда я вхожу в систему:

  1. Если user_id равен 1, он должен перенаправляться на admindashboard, иначе userdashboard
  2. Администратор должен видеть все в приложении, в то время как другие пользователи должны видеть компоненты / формы, которые в его таблице есть user_id этого конкретного пользователя

1 Ответ

0 голосов
/ 19 мая 2019

Просто добавьте проверку if внутри метода handleResponse,

handleResponse(data){
  if(this.user.user_id == 1){
     this.router.navigateByUrl('/admindashboard');
  }
  else
  {
     this.router.navigateByUrl('/userdashboard');
  }
}

Лучший способ сделать это должен использовать Использование Route Guards .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...