Helpdesk Project

From ITS Wiki

Jump to: navigation, search

In an effort to improve our web presence, we're rewriting our core web services, starting with the general helpdesk website.

Status

4/24/2008: Top menu upgraded, new design and helpdesk wizard launched. Next step is to refactor the backend. 10/15/2007: All ITS branded sites now sport the top menu, effectively tying our disparate services together. The next step is completing the new helpdesk main site.
11/14/2007: Once the emergency notifications project is completed, I should be able to tie the new helpdesk submission to PostgreSQL and finish the main site in a few days. 4/23/2008: Helpdesk site is relaunched, next phase is to replace the backend and transition the python version into place.

Technical Details

One of the new features is the wizard style helpdesk call submission process. Thanks to Peter's Active Directory scripts, we're populating many of the fields in AD for our users. For my own sake, I'm including some technical details of the implementation here.

# Initialize and bind to the LDAP server
# (server names and login details are held in the passwords database)
l = ldap.initialize('ldap://our_ad_server')
l.simple_bind_s('username','password')

# Grab a list of all OUs containing Centre accounts
ouList = l.search_s("OU=Accounts,DC=Centre,DC=edu", ldap.SCOPE_SUBTREE, "objectclass=organizationalUnit")

masterList = list() # Initialize the list that will contain all accounts
for ou in ouList:
    masterList.append(l.search_s(ou[0], ldap.SCOPE_ONELEVEL, "objectclass=Person")) 

# Just for fun, print out a list of accounts
for x in range(0,len(masterList)):
    for i in range(0,len(masterList[x])):
        print masterList[x][i][0]

The data I'm using to autofill into the call (iff it exists) is:

Helpdesk Field Active Directory field Example Output
Name givenName Luke Hatcher
Email mail luke@centre.edu
Location physicalDeliveryOfficeName McReynolds 103


Keys for my user ('luke') are:

['mailNickname', 'primaryGroupID', 'logonCount', 'cn', 'countryCode', 'dSCorePropagationData',
'objectClass', 'userPrincipalName', 'adminCount', 'lastLogonTimestamp', 'msExchRecipientDisplayType',
'homeMDB', 'instanceType', 'employeeID', 'distinguishedName', 'sAMAccountType', 'textEncodedORAddress',
'msExchUserAccountControl', 'msExchMailboxSecurityDescriptor', 'msExchPoliciesIncluded',
'msExchUserCulture', 'logonHours', 'msExchHomeServerName', 'objectSid', 'whenCreated', 'uSNCreated',
'garbageCollPeriod', 'scriptPath', 'msExchRecipientTypeDetails', 'department', 'mail', 'lockoutTime',
'badPasswordTime', 'pwdLastSet', 'deletedItemFlags', 'sAMAccountName', 'objectCategory', 'homeMTA',
'showInAddressBook', 'msExchVersion', 'objectGUID', 'whenChanged', 'badPwdCount', 'legacyExchangeDN',
'proxyAddresses', 'accountExpires', 'displayName', 'msExchALObjectVersion', 'telephoneNumber',
'physicalDeliveryOfficeName', 'name', 'homeDrive', 'memberOf', 'codePage', 'userAccountControl',
'lastLogon', 'uSNChanged', 'sn', 'homeDirectory', 'mDBUseDefaults', 'givenName', 'msExchMailboxGuid',
'lastLogoff']