module NonGrata::Persona

Public Instance Methods

authorization_scheme() click to toggle source
# File lib/non_grata/persona.rb, line 29
def authorization_scheme
    :main
end
can?(privilege, resource) click to toggle source
# File lib/non_grata/persona.rb, line 4
def can?(privilege, resource)
    user_role = get_role
    return false unless user_role
    user_role.can?(privilege, resource)
end
get_role() click to toggle source
# File lib/non_grata/persona.rb, line 10
def get_role
    if get_scheme.is_declaritive?
        user_role = authorization_role
        return user_role if user_role.is_a? Role
        return get_scheme.roles(user_role) if user_role.is_a? Symbol
        return get_scheme.roles(user_role.to_sym) if user_role.is_a? String
    end
    if get_scheme.is_dynamic?
        NonGrata::AuthorizationRole.find_by(name: authorization_role.to_s, scheme_name: authorization_scheme.to_s)
    end
end
get_scheme() click to toggle source
# File lib/non_grata/persona.rb, line 22
def get_scheme 
    user_scheme = authorization_scheme
    return user_scheme if user_scheme.is_a? NonGrata::Scheme
    return  NonGrata::Authorization.schemes(user_scheme) if user_scheme.is_a? Symbol
    return  NonGrata::Authorization.schemes(user_scheme.to_sym) if user_scheme.is_a? String
end
grant_role(role_p) click to toggle source
# File lib/non_grata/persona.rb, line 33
def grant_role(role_p)
    role = role_p if role_p.is_a? NonGrata::AuthorizationRole
     
    if role.scheme.is_declaritive? 
        raise "Can not grant a role from a declaritive scheme."
    end
    self.authorization_role = role.name
    self.authorization_scheme = role.scheme
end