Les Permissions - rodinux/plannings_cinema GitHub Wiki
On se connecte avec son email et son mot de passe après s'être enregistrer.
Il va vous falloir un compte admin pour accéder à toutes les onglets, sinon, par défaut on s'enregistre en simple visiteur et on a accès à rien de nouveau.
Pour cela, allez dans le fichier
app/views/users/_form.html.erb et vers la ligne 48 :
[...]
<% if can? :manage, User %>
<div class="field">
<%= f.label :role, :value => 'Permissions' %><br>
<%= f.select :role, User::ROLES %>
</div>
<% end %>
[...]
Effacez les lignes avec 'if' et 'end' et remplacez le bloc par :
<div class="field">
<%= f.label :role, :value => 'Permissions' %><br>
<%= f.select :role, User::ROLES %>
</div>
ces lignes que l'on enlève sont les autorisations gérées par cancancan, les permissions sont éditées dans
app/models/ability.rb
class Ability
include CanCan::Ability
def initialize(user)
# Define abilities for the passed in user here. For example:
user ||= User.new # guest user (not logged in)
if user.role == "manager"
can :read, Village
can :update, User
can :update, Seance
cannot :update, Village
cannot :destroy, User
cannot :destroy, Seance
end
if user.role == "admin"
can :update, :all
can :destroy, :all
can :manage, :all
can :import, :all
can :rails_admin
can :dashboard
end
#
# The first argument to `can` is the action you are giving the user
# permission to do.
# If you pass :manage it will apply to every action. Other common actions
# here are :read, :create, :update and :destroy.
#
# The second argument is the resource the user can perform the action on.
# If you pass :all it will apply to every resource. Otherwise pass a Ruby
# class of the resource.
#
# The third argument is an optional hash of conditions to further filter the
# objects.
# For example, here the user can only update published articles.
#
# can :update, Article, :published => true
#
# See the wiki for details:
# https://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities
end
end
-
Le role 'guest' n'a droit de voir que ce que le public voit
-
le role 'manager' est pour les bénévoles, ils ne peuvent qu'éditer leur nom dans les champs projection, caisse, commentaires, le nombre d'entrées d'une séance et éditer leur utilisateur, mot de passe, telephone, nom, prénom, email (sauf leur role).
-
le role admin à accès à tout
Donc en enlevant ces lignes, vous pourrez en vous enregistrant vous choisir un role 'admin', puis vous remettez ensuite les balises enlevées précedement.
J'ai choisi de donner les privilèges après que les utilisateurs soient inscrits, ils me préviennent et je leur donne le role de 'manager' ou 'admin' en les éditants.
( Prises à différentes étapes de l'évolution de l'application, d'où des changements)