Giter Site home page Giter Site logo

Comments (4)

shanepinnell avatar shanepinnell commented on August 16, 2024

Seems to me like this should work. I am looking at doing the exact same thing! Have you forked this yet?

Have you tried changing

resource.name = entry.cn

to

resource[:name] = entry.cn

from devise_ldap_authenticatable.

shanepinnell avatar shanepinnell commented on August 16, 2024

OK, I got it working for me... The salient point being that the entry elements are returned as an array. So, changing the following worked for me:

    ldap.search( :base => treebase, :filter => filter, :attributes => attrs ) do |entry|
      resource.name = entry.cn
      resource.title = entry.title
      resource.mail = entry.mail
      resource.phone = entry.phone
    end

Changed to:

    ldap.search( :base => treebase, :filter => filter, :attributes => attrs ) do |entry|
      resource.name = entry.cn.first
      resource.title = entry.title.first
      resource.mail = entry.mail.first
      resource.phone = entry.phone.first
    end

I suppose this follows from the Net::LDAP documentation that contains blocks which iterate through the various elements which would extract the values stored in the arrays.

from devise_ldap_authenticatable.

cschiewek avatar cschiewek commented on August 16, 2024

This functionality exists in master.

from devise_ldap_authenticatable.

peelman avatar peelman commented on August 16, 2024

So not to bring up the ghost of a dead horse, but is there documentation available on how to do this anywhere? I worked out that we can use an ldap_before_save method in the user model to essentially serve as callback duties, but is there a way to fetch ldap attributes from there without having to rebuild the query? What am I missing?

Figured it out.

In my user.rb:

    def ldap_before_save
      self.firstname = self.ldap_get_param(self.username, 'givenName')
      self.lastname = self.ldap_get_param(self.username, 'sn')
      self.title = self.ldap_get_param(self.username, 'description')
      self.email = self.ldap_get_param(self.username, 'mail')
    end

from devise_ldap_authenticatable.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.