Sha256: d1b76edec07fd82e47925881c038179e73c523e44700bcc62845b36b76b282d3

Contents?: true

Size: 1.76 KB

Versions: 2

Compression:

Stored size: 1.76 KB

Contents

require "cfoundry/v2/model"

module CFoundry
  module V2
    class User < Model
      to_many :spaces
      to_many :organizations
      to_many :managed_organizations, :as => :organization
      to_many :billing_managed_organizations, :as => :organization
      to_many :audited_organizations, :as => :organization
      to_many :managed_spaces, :as => :space
      to_many :audited_spaces, :as => :space
      attribute :admin, :boolean
      to_one :default_space, :as => :space

      attribute :guid, :string # guid is explicitly set for users

      queryable_by :space_guid, :organization_guid, :managed_organization_guid,
                   :billing_managed_organization_guid, :audited_organization_guid,
                   :managed_space_guid, :audited_space_guid

      def guid
        @guid
      end

      alias set_guid_attribute guid=

      def guid=(x)
        @guid = x
        set_guid_attribute(x)
      end

      alias :admin? :admin

      def change_password!(new, old)
        @client.base.uaa.change_password(@guid, new, old)
      end

      # optional metadata from UAA
      attr_accessor :emails, :name

      def email
        return unless @emails && @emails.first
        @emails.first[:value]
      end

      def given_name
        return unless @name && @name[:givenName] != email
        @name[:givenName]
      end

      def family_name
        return unless @name && @name[:familyName] != email
        @name[:familyName]
      end

      def full_name
        if @name && @name[:fullName]
          @name[:fullName]
        elsif given_name && family_name
          "#{given_name} #{family_name}"
        end
      end

      def delete! (options = {})
        super (options)
        @client.base.uaa.delete_user(guid)
        true
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cfoundry-2.3.6.rc1 lib/cfoundry/v2/user.rb
cfoundry-2.3.5 lib/cfoundry/v2/user.rb