LDAP; I18N and other things

  • Pierre Nault
    Pierre Nault

    Hi all,
    We recently installed refbase (bleeding-edge version) on a test server. The software works greatly and does natively things that we were requesting for:
    -search for a particular user or a research group (using area field for the last)
    -extraction of results in the form of xml or html for use with a CMS, sorting results with year, type or author
    -export of selected references in different files formats
    -compatibility with most of the reference manager (zotero, mendelay or endnote)
    -partially internationalized code

    So we have started modifying some code to accommodate ours needs. We made an LDAP authentication (partially): we can authenticate a user via an LDAP connection but we didn’t yet make any change for automatic creation of a user via LDAP (I can explain how we did it if someone is interested). We also made possible searching for a specific user via his email (field “location”). We are actively translating in French Canadian pieces of file common_utf8.inc. On this matter, we realized that some files are not I18N, we could do some job on this (with some indication on howto) and return some code. I know that the LDAP authentication was requested by some other users; maybe we could integrate it in some sort of plugins for future version? All these things said, if someone is interested in some of these modifications, I could release some code. I’m no programmer; my code is clean as it can be. On the other hand, we are concerned about our code modifications and further version compatibility of refbase; we would prefer that these modifications could be included in some sort of options/plugins.
    Best regards,
    Pierre Nault

  • Hi Pierre,

    thanks for getting in touch and sorry for the very late response. It's great to hear that refbase mostly works for you and that you even took the effort to integrate with LDAP and add better internationalization & localization.

    LDAP has been requested quite frequently, so we'd be very interested to hear more about your approach and to see your code changes.

    The same goes for your translation work. We'd be interested to get your French Canadian version of the 'common_utf8.inc' file. W.r.t. I18N, we'd be happy to talk to you about this. What are the most pressing areas/files that you'd need to be internationalized?

    If you're making further modifications to the code it would be great if these are done on top of the newest version in the bleeding-edge branch of the Sourceforge Subversion directory. This will help us to integrate your code into the official version.


    For any dev-related discussions, we could add you to the refbase developer mailing list. Or, if you prefer private mail, send your mail to refbase at extracts dot de.

    Best regards,

  • Pierre Nault
    Pierre Nault

    Hi Mathias,

    Sorry for the late response: I was on holiday last week. I’m glad that my post interested some of you. As for the LDAP integration, this is how I mad it worked. Note that all changes occur on the 1366 revision (there is now a 1377). All the process is based on possibilities for LDAP server to return an email address.

    -I created a folder-file call /plugin/ldap/authentification.php. This file contains variables such as the ldap host; Distinguished Name; user groups, therefore we can limit access to a certain group of users in the LDAP directory. There is a first authentication on LDAP, if true it returns the content of the ‘mail’ attribute in LDAP. After that, the email of the user is sent to function check_login (sql query modified to challenge only the email) in user_login.php. If true, the process follows with saveSessionVariable. Note that before going to check_login, there are some changes in the code.
    As for the logout (user_logout.php), only a minor modification -> deleteSessionVariable(“mailLDAP”). The rest goes by the code.

    Adding a user via LDAP is more complex and need substantial modifications. We would have to retrieve more attribute from LDAP (name, surname, phone number, etc.- no difficulties here) and pass it to user_validation.php. Maybe in initialize/ini.inc.php adding for $addNewUsers a new value “ldap”. This would need more discussions I guess.

    About I18N, we could start with user_login.php; search.php; import.php and manage_duplicate.php.

    For more details on code modifications, I could send you the files. I will send my mail to your developer mailing list.

    Best Regards,

  • Many thanks, Pierre!

    I've added you to the developer mailing list and we'll be happy to continue with any more detailed discussion there.

    Best, Matthias