[RESOLU] Limiter l'acces au données via une URL à son createur (owner)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Limiter l'acces au données via une URL à son createur (owner)

Re: Limiter l'acces au données via une URL à son createur (owner)

par Marc_Q » 05 mars 2021, 09:58

Pour info, j'ai regle le probleme de la maniere suivante dans une des methodes de mon controleur :

Code : Tout sélectionner

$file = File::find($id); // if user is not an admin (ASSET MANAGER) he will be routed to his file if ($user->role_id != 2 && $id == 0) { $file = File::where(['file_creator_id' => $user->id])->first(); return redirect('/files/' . $file->id . '/edit'); } // if file not found or user is not an admin and not the file owner, he will be redirect to the dashboard elseif (!$file || ($user->role_id != 2 && $file->file_creator_id != $user->id)) { return redirect('/dashboard'); }

Limiter l'acces au données via une URL à son createur (owner)

par Marc_Q » 06 févr. 2021, 06:01

Bonjour,

Je souhaiterais limiter l'accès à une URL au créateur de son dossier (un utilisateur ne peut avoir qu'un dossier) :

Code : Tout sélectionner

/file/{id}/edit
{id} correspond à l'ID de la table "files" suivante :

Table "files"

Code : Tout sélectionner

id | file_id | file_creator_id 6 | 2021-1 | 1
Relation User | File
Modèle "User"

Code : Tout sélectionner

public function file() { return $this->belongsTo('App\File','file_creator_id'); }


Modèle "File"

Code : Tout sélectionner

public function user() { return $this->hasOne('App\User'); }

EXEMPLE

ID utilisateur authentifié = 1

Si un utilisateur authentifié veux accéder à son dossier, il peut cliquer sur un lien menu :

Code : Tout sélectionner

{{ URL::to('/files/' . $file['id'] . '/edit') }}

Code : Tout sélectionner

$file['id']
récupère l'id de la relation User | File.

et le dossier est affiché.

Le problème est que l'utilisateur n'a qu'a modifier l'id de l'URL

par exemple de /file/6/edit en /file/1/edit pour accéder au dossier d'un autre utilisateur.

QUESTION
Quel est la manière la plus simple pour limiter l'accès au dossier qu'a son créateur.

Merci d'avance de vos suggestions.

Marc