Welcome Guest Login Register Member List
ExpressionEngine Forums
Advanced Search
Username: Password:
Remember Me? forgot password?
You are here: Forum Home  >  Usage  >  Tips and Tricks  >  Thread
   
 
BOUNTY: Several “small” additions to tracks.
 
Tony Shadwick
Posted: 13 September 2006 02:51 PM   [ Ignore ]  
Newbie
Rank
Total Posts:  4
Joined  2006-09-13

$100 to the first person that adds the following:

Add the ability to display the persons’s real name in the upper-right as opposed to login id.  I started doing this myself by adding the fields fname and lname to the users table.  All that would need to happen really is check to see if those fields exist or are null, if they are, display the username, else display the person’s real name.

LDAP authentication - this is probably the biggie.  I’m presuming ruby already has an LDAP module.  All I’m asking for is that instead of using the users table (or in addition to), allow the user to specify a base dn in the config, and then run an LDAP search.  Authenticate this way - currently the login field would be pulled from uid element, password would probably be an MD5 hash, but extra credit for allow other auth types.  You would then use the uidNumber element for the users/id table field.  I’m debating whether to create a custom LDAP element named tracksAdmin.  I can use that as a boolean, and you can replace the is_admin field with that.  You would then pull lname and fname fields from Surname and Name elements, respectively, or possibly just pull the cn element as a single string.

What this allows for is keeping centralized authentication in a business a bit more simple, and would integrate Tracks into Apple’s OpenDirectory, and Microsoft’s ActiveDirectory.  I’ve been playing around with this:

http://dataspill.org/pages/projects/ruby-activeldap

—————————————

Side bounty - getting things to where if a user “is_admin”, the user can view other people’s user accounts.  I’m also willing to perhaps fund a developer maturing the multi-user functionality in Tracks a bit.  The ability to share your tasks with one or more users, assignment of tasks to others, smarter “waiting for” context, etc.

Profile
 
Tony Shadwick
Posted: 13 September 2006 03:10 PM   [ Ignore ]   [ # 1 ]  
Newbie
Rank
Total Posts:  4
Joined  2006-09-13

Here’s a pseudo-code block for the ldap auth that I’ve commented into my own login_controller.rb, just to give you an idea of what I’m talking about:

class LoginController < ApplicationController
  model   
:user
  layout  
'login'
  
skip_before_filter :set_session_expiration

  def login
    
@page_title = "TRACKS::Login"
    
case @request.method
      when 
:post
        
# If ldap_auth boolean is set
                #connect to ldap server

                #search for user_id as a dn. (We use the pre-assigned
                #basedn that the user provided in a config file.)

                #disconnect from ldap server

                #if the user wasn't found
                        #take us to a display explaining that the user
                        #wasn't found in the directory, or perhaps go
                        #below and check in the
                        #users table instead?
                #else   
                        #hash user_password as md5, compare against the LDAP
                        #password element. (Can we use User.authenticate for this?)
                        # If they match
                                # Do everything in the below if block.  Perhaps
                                # we need to move this off into a funtion?  Be sure to 
                                # grab the uidNumber element and any other user values here.
        
if @user = User.authenticate(@params['user_login'], @params['user_password'])
          
session['user_id'] = @user.id
          
# If checkbox on login page checked, we don't expire the session after 1 hour
          # of inactivity

and so on.... 
Profile
 
lukemelia
Posted: 05 November 2006 10:45 AM   [ Ignore ]   [ # 2 ]  
Member
Avatar
RankRankRank
Total Posts:  62
Joined  2006-07-18

Hi Tony,

I just checked LDAP authentication capabilities into the trunk. Rough around the edges, I’m sure, but give it a whirl and let me know how it works for you.

Cheers,
Luke

Signature 

Luke Melia - Tracks committer - New York, NY - http://www.lukemelia.com/

Profile
 
Tony Shadwick
Posted: 05 November 2006 03:07 PM   [ Ignore ]   [ # 3 ]  
Newbie
Rank
Total Posts:  4
Joined  2006-09-13

Might be later this week.  Thanks!

Profile
 
lukemelia
Posted: 02 January 2007 01:40 PM   [ Ignore ]   [ # 4 ]  
Member
Avatar
RankRankRank
Total Posts:  62
Joined  2006-07-18

Happy New Year, Tony! Hope you have an opportunity to see if the goals of your bounty were met. -Luke

Signature 

Luke Melia - Tracks committer - New York, NY - http://www.lukemelia.com/

Profile
 
lukemelia
Posted: 19 February 2007 07:03 PM   [ Ignore ]   [ # 5 ]  
Member
Avatar
RankRankRank
Total Posts:  62
Joined  2006-07-18

It’s kind of a bummer that Tony offered a bounty and then didn’t follow through on it. If anyone else is considering something like this, please do be serious and considerate about it.

Signature 

Luke Melia - Tracks committer - New York, NY - http://www.lukemelia.com/

Profile
 
bsag
Posted: 19 February 2007 10:42 PM   [ Ignore ]   [ # 6 ]  
Administrator
Avatar
RankRankRankRank
Total Posts:  217
Joined  2006-03-05

Seconded. Luke did a lot of work on this in good faith, and delivered most of what was asked for. Not following up on it is pretty un-cool.

Profile
 
Tony Shadwick
Posted: 30 April 2007 01:50 PM   [ Ignore ]   [ # 7 ]  
Newbie
Rank
Total Posts:  4
Joined  2006-09-13

I’m back.

It’s no excuse that I didn’t get back here sooner.  I got taken for a ride by a non-paying client to the tune of $50k (that’s 5 zeros!) and it’s taken a good long while to get my head above water. :(

I’ll make good on this.  As of this very moment I haven’t even a tracks install to test this on.  Let me see what I can do this week to test it out.  Feel free to e-mail me directly.  .(JavaScript must be enabled to view this email address)

Again, I’m sorry about this…

Profile
 
   
 
 
‹‹ Star an action      create a task by sending an email ››

Powered By ExpressionEngine
Template Design By Sonnenvogel.com
Select a theme:

ExpressionEngine Discussion Forum - Version 2.1.2 (20091002)
Script Executed in 0.1240 seconds

Atom Feed
RSS 2.0