Sha256: d2223a8d993e2463a574a98e0d61be76579eafc383ae3c0a5e7fc83b80c94047
Contents?: true
Size: 829 Bytes
Versions: 2
Compression:
Stored size: 829 Bytes
Contents
module Curupira module Authorizer extend ActiveSupport::Concern def authorize_for_group unless has_authorization_for_group? deny_access end end def authorize unless has_authorization? deny_access end end def has_authorization? return true if current_user.admin? query(params).present? end def has_authorization_for(params) query(params).present? end private def deny_access redirect_to "/", notice: "Sem autorização" end def query(params) User.joins( role_group_users: { role: { features: [:action_labels] } } ) .where( features: { controller: params[:controller] }, action_labels: { name: params[:action] }, id: current_user ) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
curupira-0.1.1 | lib/curupira/authorizer.rb |
curupira-0.1.0 | lib/curupira/authorizer.rb |