Sha256: 71e586cfc40074ca08ff6af87448103103cb19dc0d14a6c9165bb79d7ed65f5a

Contents?: true

Size: 906 Bytes

Versions: 2

Compression:

Stored size: 906 Bytes

Contents

module Oauth2Provider
class Scope
  include Mongoid::Document
  include Mongoid::Timestamps
  include Document::Base

  field :name
  field :uri
  field :values, type: Array, default: []

  attr_accessible :name

  validates :name, presence: true
  validates :values, presence: true
  validates :uri, url: true

  def normalize(val)
    separator = Oauth2Provider.settings["scope_separator"]
    val = val.split(separator)
  end

  def values_pretty
    separator = Oauth2Provider.settings["scope_separator"]
    values.join(separator)
  end

  class << self
    # Sync all scopes with the correct exploded scope when a
    # scope is modified (changed or removed)
    def sync_scopes_with_scope(scope)
      scopes_to_sync = any_in(scope: [scope])
      scopes_to_sync.each do |client|
        scope.values = Oauth2Provider.normalize_scope(scope.values)
        scope.save
      end
    end
  end
end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
oauth2_provider_engine-0.0.2 app/models/oauth2_provider/scope.rb
oauth2_provider_engine-0.0.1 app/models/oauth2_provider/scope.rb