как ограничить пользователя другим идентификатором для обновления комментария другого пользователя в laravel - PullRequest
0 голосов
/ 24 октября 2019
public function update (Request $request, $id, $commentid) {
    $this->validate($request, [
        'body' =>'required|max:255'
    ]);

    $post = Post::findorFail($id);
    $comment = Comment::find($commentid);

    $body = $request->body;
    $comment->post_id = $post->id;
    $comment->body = $body;
    $comment ->user_id = Auth::user()->id;

    $comment ->save();
    return response()->json(['data' => $comment], 200, [], JSON_NUMERIC_CHECK);
}

как ограничить другие user->id для обновления auth->id комментарием и использовать метод выбора поста, чтобы поймать user_id конкретного поста, но получая ошибочную ошибку и использованное промежуточное ПО, но ошибка все та же

Ответы [ 2 ]

2 голосов
/ 24 октября 2019

Если я правильно понял ваш вопрос, вы можете попробовать сделать это следующим образом:

public function update (Request $request, $id, $commentid) {
  $comment = Comment::find($commentid);

  if ( Auth::user()->id !== $comment->user_id ) {
    return response()->json(['error' => 'Forbidden'], 403);
  }

  // other code
}

Надеюсь, вам достаточно этого решения, но я должен сказать, что предпочитаю абстрактную проверку и права. проверьте логику в FormRequest

https://laravel.com/docs/5.8/validation#form-request-validation

В функции rules() вы можете установить свои правила проверки. В authorize() проверьте, может ли пользователь изменить комментарий.

0 голосов
/ 24 октября 2019

вы используете Auth :: user ();авторизованным пользователю. это стандартная функциональность по умолчанию для аутентификации пользователя

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