Module: Pageflow::Roles

Defined in:
app/models/pageflow/roles.rb

Overview

rubocop:todo Style/Documentation

Class Method Summary collapse

Class Method Details

.at_least(role_uncasted) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'app/models/pageflow/roles.rb', line 5

def at_least(role_uncasted)
  role = role_uncasted.to_sym
  {
    member: %w[member previewer editor publisher manager],
    previewer: %w[previewer editor publisher manager],
    editor: %w[editor publisher manager],
    publisher: %w[publisher manager],
    manager: %w[manager]
  }[role]
end

.high(user, entry) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/models/pageflow/roles.rb', line 16

def high(user, entry)
  roles = [:none, :member, :previewer, :editor, :publisher, :manager]

   = Membership.where(user:, entity: entry.).first
   =  ? .role : :none

  entry_role = if user.entries.include?(entry)
                 Membership.where(user:, entity: entry).first.role
               else
                 :none
               end

  if roles.find_index(.to_sym) > roles.find_index(entry_role.to_sym)
    .to_sym
  else
    entry_role.to_sym
  end
end