3 Réponses :


18
votes

Il n'y a pas d'intégration intégrée avec des modèles; Vous passez dans le rôle dans le «code> assign_attributes appelez: xxx

the : comme paramètre paramètre par défaut sur : défaut et vous pouvez transmettre n'importe quel symbole que vous voulez. Pour l'intégrer à votre modèle utilisateur , vous pouvez lui donner un attribut appelé rôle , puis faire quelque chose comme: xxx < p> Vous pouvez également contourner la protection en utilisant : sans_protection : xxx

de la même manière, nouveau , Créer , Créer! , update_attributes et update_attributes! méthodes Tous respectent la sécurité de la masse. Le Guide Ruby On Rails sur la sécurité a Plus d'infos .


1 commentaires

Cependant j'ai une question. Je mettant la mise à niveau des rails 4 jusqu'à 5 (qui était auparavant sur les rails 3. Et je suis tombé sur quelque chose comme @ project.update_attributes (paramètres [: projet],: AS => actuel_user.role.to_sym) mais je reçois une erreur qui dit update_attributes n'accepte qu'un seul argument. Qu'est-il arrivé au comme :: admin partie de ce code? Est-il sécuritaire de le supprimer complètement ?



3
votes

Pour les deux scénarios, vous le laisseriez de la même manière que vous le déclarez à l'origine. Donc, par exemple: xxx pré>

si vous avez fait p> xxx pré>

, vous ne pourrez pas affecter le Credit_Card Code >:: p> xxx pré>

Cependant, si vous indiquez qu'il sera : as =>: admin code> alors il le permet p>

user = User.new({:name => "John", :credit_card => "1234123412341234"}, :as => :admin)
user.attributes # {:name => "John", :credit_card => "1234123412341234"} 


0 commentaires

1
votes

Tous les attributs que vous souhaitez accéder en tant qu'utilisateur spécifique doivent être définis correctement. Par exemple:

    @user.update_attributes(params[:user], :as => :admin)


0 commentaires