Próbuję zrobić aplikację z szynami 4.Szyny 4 - Pundit z Rolify - pozwalające grupę ról
I zdefiniowano szereg ról z Rolify gem.
Teraz chcę użyć pundit, aby umożliwić użytkownikom wykonywanie pewnych zadań. Tam, gdzie więcej niż jeden typ roli może coś zrobić, zdefiniowałem grupę ról.
W mojej application_policy zdefiniowałem prywatne metody, które określają grupy ról, które chcę użyć w uprawnieniach pseudonimu.
Moja polityka aplikacji tworzy instancję użytkownika i rekord. Następnie definiuję rekord jako nazwę odpowiedniego modelu (taką samą jak nazwa profilu dla tego modelu).
mam:
class ApplicationPolicy
attr_reader :user, :record
def initialize(user, record)
@user = user
@record = record
end
def index?
false
end
def show?
scope.where(:id => record.id).exists?
end
def create?
false
end
def new?
create?
end
def update?
false
end
def edit?
update?
end
def destroy?
false
end
def scope
Pundit.policy_scope!(user, record.class)
end
class Scope
attr_reader :user, :scope
def initialize(user, scope)
@user = user
@scope = scope
end
def resolve
scope
end
end
private
def cf_legal
[ :Admin, :CF_Legal, :CF_Policy_Manager ]
end
def cf_content
[ :Admin, :CF_Author, :CF_Editor ]
end
end
Następnie w polityce zawartości, chcę powiedzieć:
def record
content
end
def create
user.has_role? :cf_content
end
Kiedy to zapisać i spróbować, nie widzę rzeczy, że jestem powinien zobaczyć (jako użytkownik z rolą Autor
Czy ktoś może zobaczyć, jak to zrobić
Cześć Josh, nie rozumiem żadnego z tego, co napisałeś. Będę edytować mój post, aby wyjaśnić moje pytanie. – Mel