Sha256: e9c66b2d22fd1b3660a389b9ffab34622ba91699f196de30e52d6d92d4e76d75

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

#
# @author Kristian Mandrup
#
# Core Troles API functions
#
module Troles::Common::Api
  module Core

    # Access to the Troles operations API
    # @return [Troles::Operations] the operations API object 
    def roles
      @roles ||= Troles::Operations.new(self)
    end

    # Sets the roles of the subject
    # (see #set_roles)
    def roles= *new_roles
      roles.set_roles new_roles
    end

    # If this role subject instance should have static (immutable) roles
    # @return [true, false] defaults to false so a role subject is allowed to change roles 
    def static_roles?
      false
    end

    def troles_config
      self.class.troles_config
    end

    module ClassMethods

      def valid_roles
        troles_config.valid_roles
      end

      def valid_roles= *roles
        troles_config.valid_roles = roles.flatten.map{|r| r.to_s.alpha_numeric}.map(&:to_sym).uniq
      end

      # If all role subjects using this strategy should have static (immutable) roles
      #
      # @note Should also proxy Config object?
      #
      # @return [true, false] if role subjects have static roles or not (default: false)
      def static_roles?
        troles_config.static_roles?
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
troles-0.6.1 lib/troles/common/api/core.rb
troles-0.6.0 lib/troles/common/api/core.rb
troles-0.5.2 lib/troles/common/api/core.rb