Sha256: 867e83d63113483ae25e674c53d2276244dabb1004f2a0738abdce54d7ae3740

Contents?: true

Size: 1.54 KB

Versions: 8

Compression:

Stored size: 1.54 KB

Contents

class User
  include DataMapper::Resource
  property :id,        Serial, :field => "uidnumber"
  property :login,     String, :field => "uid", :unique_index => true
  property :hashed_password,  String, :field => "userPassword", :writer => :private
  property :name,      String, :field => "cn"
  property :mail,      String
  property :age,       Integer, :field => "postalCode"
  property :alive,     Boolean, :field => "gecos"

  has n, :roles

  has n, :group_users

  def groups
    groups = GroupUser.all(:user_id => login).collect{ |gu| gu.group }

    def groups.user=(user)
      @user = user
    end

    groups.user = self

    def groups.<<(group)
      unless member? group
        GroupUser.create(:user_id => @user.login, :group_id => group.id)
        super
      end
      self
    end

    def groups.delete(group)
      gu = GroupUser.first(:user_id => @user.login, :group_id => group.id)
      if gu
        gu.destroy
        super
      end
    end

    groups
  end

  dn_prefix { |user| "uid=#{user.login}"}

  treebase "ou=people"

  ldap_properties do |user|
    properties = { :objectclass => ["inetOrgPerson", "posixAccount", "shadowAccount"], :loginshell => "/bin/bash", :gidnumber => "10000" }
    properties[:sn] = "#{user.name.sub(/.*\ /, "")}"
    properties[:givenname] = "#{user.name.sub(/\ .*/, "")}"
    properties[:homedirectory] = "/home/#{user.login}"
    properties
  end

  def password=(password)
    salt = "--#{Time.now}--#{login}--"
    attribute_set(:hashed_password, Ldap::Digest.ssha(password, salt)) if password
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
dm-ldap-adapter-0.4.7 spec/support/user.rb
dm-ldap-adapter-0.4.8 spec/support/user.rb
dm-ldap-adapter-0.4.6 spec/support/user.rb
dm-ldap-adapter-0.4.6-java spec/support/user.rb
dm-ldap-adapter-0.4.5-java spec/support/user.rb
dm-ldap-adapter-0.4.5 spec/support/user.rb
dm-ldap-adapter-0.4.4-java spec/support/user.rb
dm-ldap-adapter-0.4.4 spec/support/user.rb