Sha256: e8d8715be99fc4e62761221dfaa17e17b56a0e3e4f308c59437ea3ceb306ae46

Contents?: true

Size: 1003 Bytes

Versions: 3

Compression:

Stored size: 1003 Bytes

Contents

module Pageflow
  module Roles
    module_function

    def at_least(role_uncasted)
      role = role_uncasted.to_sym
      if role == :member
        %w(member previewer editor publisher manager)
      elsif role == :previewer
        %w(previewer editor publisher manager)
      elsif role == :editor
        %w(editor publisher manager)
      elsif role == :publisher
        %w(publisher manager)
      elsif role == :manager
        %w(manager)
      end
    end

    def high(user, entry)
      roles = [:none, :member, :previewer, :editor, :publisher, :manager]
      account_role = Membership.where(user: user, entity: entry.account).first.role || :none
      if user.entries.include?(entry)
        entry_role = Membership.where(user: user, entity: entry).first.role
      else
        entry_role = :none
      end

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pageflow-12.0.0.rc3 app/models/pageflow/roles.rb
pageflow-12.0.0.rc2 app/models/pageflow/roles.rb
pageflow-12.0.0.rc1 app/models/pageflow/roles.rb