Sha256: f76d621bd4597ca2a995103561b286bafb57bf1ee727c39b2ad0cf322f46c461

Contents?: true

Size: 1.05 KB

Versions: 84

Compression:

Stored size: 1.05 KB

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_membership = Membership.where(user: user, entity: entry.account).first
      account_role = account_membership ? account_membership.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

84 entries across 84 versions & 1 rubygems

Version Path
pageflow-17.0.4 app/models/pageflow/roles.rb
pageflow-17.0.3 app/models/pageflow/roles.rb
pageflow-17.0.2 app/models/pageflow/roles.rb
pageflow-17.0.1 app/models/pageflow/roles.rb
pageflow-17.0.0 app/models/pageflow/roles.rb
pageflow-16.2.0 app/models/pageflow/roles.rb
pageflow-16.1.0 app/models/pageflow/roles.rb
pageflow-16.0.0 app/models/pageflow/roles.rb
pageflow-15.8.0 app/models/pageflow/roles.rb
pageflow-14.5.2 app/models/pageflow/roles.rb
pageflow-15.7.1 app/models/pageflow/roles.rb
pageflow-15.7.0 app/models/pageflow/roles.rb
pageflow-15.6.1 app/models/pageflow/roles.rb
pageflow-15.6.0 app/models/pageflow/roles.rb
pageflow-15.5.0 app/models/pageflow/roles.rb
pageflow-15.4.0 app/models/pageflow/roles.rb
pageflow-15.3.0 app/models/pageflow/roles.rb
pageflow-15.2.2 app/models/pageflow/roles.rb
pageflow-15.2.1 app/models/pageflow/roles.rb
pageflow-15.2.0 app/models/pageflow/roles.rb