Sha256: 67baadbcb26ccaa78a4bddafdb4260bbff4239671e901afac7783203f1f33863
Contents?: true
Size: 1.95 KB
Versions: 30
Compression:
Stored size: 1.95 KB
Contents
module CFoundry::V1 # Class for representing a user on a given target (via Client). # # Does not guarantee that the user exists; used for both user creation and # retrieval, as the attributes are all lazily retrieved. Setting attributes # does not perform any requests; use #update! to commit your changes. class User # User email. attr_reader :email # Create a User object. # # You'll usually call Client#user instead def initialize(email, client, manifest = nil) @email = email @client = client @manifest = manifest end # Show string representing the user. def inspect "#<User '#@email'>" end # Basic equality test by email. def eql?(other) other.is_a?(self.class) && other.email == @email end alias :== :eql? # Delete the user from the target. def delete! @client.base.delete_user(@email) end # Create the user on the target. # # Call this after setting the various attributes. def create! @client.base.create_user(@manifest.merge(:email => @email)) end # Update user attributes. def update!(what = {}) @client.base.update_user(@email, manifest.merge(what)) @manifest = nil end # Check if the user exists on the target. def exists? @client.base.user(@email) true rescue CFoundry::Denied false end # Check if the user is an administrator. def admin? manifest[:admin] end # Set the user's password. # # Call #update! after using this. def password=(str) manifest[:password] = str end def guid @guid ||= @client.base.token_data[:user_id] end def change_password!(new, old) if @client.base.uaa @client.base.uaa.change_password(guid, new, old) else self.password = new update! end end private def manifest @manifest ||= @client.base.user(@email) end end end
Version data entries
30 entries across 30 versions & 2 rubygems