Module: StoryTeller::PrivilegeGrants
- Defined in:
- lib/story_teller/privileges.rb
Overview
module PrivilegeGrants
Class Attribute Summary collapse
-
.mode ⇒ Object
Returns the value of attribute mode.
Class Method Summary collapse
- .grant_session(subject, privilege) ⇒ Object
- .granted?(subject, privilege) ⇒ Boolean
- .persistent_granted?(subject, privilege) ⇒ Boolean
- .session_granted?(subject, privilege) ⇒ Boolean
Class Attribute Details
.mode ⇒ Object
Returns the value of attribute mode.
69 70 71 |
# File 'lib/story_teller/privileges.rb', line 69 def mode @mode end |
Class Method Details
.grant_session(subject, privilege) ⇒ Object
71 72 73 74 75 76 |
# File 'lib/story_teller/privileges.rb', line 71 def grant_session(subject, privilege) subject = StoryTeller::Privileges.subject_for(subject) return nil if subject.nil? @session_grants[identity(subject)].add(privilege.to_sym) end |
.granted?(subject, privilege) ⇒ Boolean
92 93 94 95 96 97 98 |
# File 'lib/story_teller/privileges.rb', line 92 def granted?(subject, privilege) privilege = privilege.to_sym session_granted?(subject, privilege) || (privilege == :builder && session_granted?(subject, :admin)) || persistent_granted_under_mode?(subject, privilege) end |
.persistent_granted?(subject, privilege) ⇒ Boolean
85 86 87 88 89 90 |
# File 'lib/story_teller/privileges.rb', line 85 def persistent_granted?(subject, privilege) subject = StoryTeller::Privileges.subject_for(subject) return false unless subject.is_a?(StoryTeller::PrivilegedIdentity) subject.privilege?(privilege.to_sym) end |
.session_granted?(subject, privilege) ⇒ Boolean
78 79 80 81 82 83 |
# File 'lib/story_teller/privileges.rb', line 78 def session_granted?(subject, privilege) subject = StoryTeller::Privileges.subject_for(subject) return false if subject.nil? @session_grants[identity(subject)].include?(privilege.to_sym) end |