Show
Ignore:
Timestamp:
06/06/03 22:49:15 (21 years ago)
Author:
jalet
Message:

Very latest schema. UNTESTED.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/storages/ldapstorage.py

    r1017 r1018  
    2121# 
    2222# $Log$ 
     23# Revision 1.3  2003/06/06 20:49:15  jalet 
     24# Very latest schema. UNTESTED. 
     25# 
    2326# Revision 1.2  2003/06/06 14:21:08  jalet 
    2427# New LDAP schema. 
     
    8689    def getPrinterId(self, printername) :         
    8790        """Returns a printerid given a printername.""" 
    88         result = self.doSearch("(&(objectClass=pykotaPrinter)(pykotaPrinterName=%s))" % printername, ["pykotaPrinterName"]) 
     91        result = self.doSearch("(&(objectClass=pykotaPrinter)(|(pykotaPrinterName=%s)(cn=%s)))" % (printername, printername), ["pykotaPrinterName"]) 
    8992        if result : 
    9093            return result[0][0] 
     
    9295    def getPrinterPrices(self, printerid) :         
    9396        """Returns a printer prices per page and per job given a printerid.""" 
    94         result = self.doSearch("pykotaPrinterName=*", ["pykotaPricePerPage", "pykotaPricePerJob"], base=printerid) 
     97        result = self.doSearch("(|(pykotaPrinterName=*)(cn=*))", ["pykotaPricePerPage", "pykotaPricePerJob"], base=printerid, scope=ldap.SCOPE_BASE) 
    9598        if result : 
    9699            return (float(result[0][1]["pykotaPricePerPage"][0]), float(result[0][1]["pykotaPricePerJob"][0])) 
     
    102105    def getUserId(self, username) : 
    103106        """Returns a userid given a username.""" 
    104         result = self.doSearch("(&(objectClass=pykotaAccount)(pykotaUserName=%s))" % username, ["uid"]) 
     107        result = self.doSearch("(&(objectClass=pykotaAccount)(|(pykotaUserName=%s)(uid=%s)))" % (username, username), ["uid"]) 
    105108        if result : 
    106109            return result[0][0] 
     
    108111    def getGroupId(self, groupname) : 
    109112        """Returns a groupid given a grupname.""" 
    110         result = self.doSearch("(&(objectClass=pykotaGroup)(pykotaGroupName=%s))" % groupname, ["cn"]) 
     113        result = self.doSearch("(&(objectClass=pykotaGroup)(|(pykotaGroupName=%s)(cn=%s)))" % (groupname, groupname), ["cn"]) 
    111114        if result is not None : 
    112115            (groupid, dummy) = result[0] 
     
    120123        """Returns the list of userids and usernames which uses a given printer.""" 
    121124        # first get the printer's name from the id 
    122         result = self.doSearch("objectClass=pykotaPrinter", ["pykotaPrinterName"], base=printerid, scope=ldap.SCOPE_BASE) 
    123         if result : 
    124             printername = result[0][1]["pykotaPrinterName"][0] 
     125        result = self.doSearch("objectClass=pykotaPrinter", ["pykotaPrinterName", "cn"], base=printerid, scope=ldap.SCOPE_BASE) 
     126        if result : 
     127            fields = result[0][1] 
     128            printername = (fields.get("pykotaPrinterName") or fields.get("cn"))[0] 
    125129            result = self.doSearch("(&(objectClass=pykotaUserPQuota)(pykotaPrinterName=%s))" % printername, ["pykotaUserName"])  
    126130            if result : 
     
    130134        """Returns the list of groups which uses a given printer.""" 
    131135        # first get the printer's name from the id 
    132         result = self.doSearch("objectClass=pykotaPrinter", ["pykotaPrinterName"], base=printerid, scope=ldap.SCOPE_BASE) 
    133         if result : 
    134             printername = result[0][1]["pykotaPrinterName"][0] 
     136        result = self.doSearch("objectClass=pykotaPrinter", ["pykotaPrinterName", "cn"], base=printerid, scope=ldap.SCOPE_BASE) 
     137        if result : 
     138            fields = result[0][1] 
     139            printername = (fields.get("pykotaPrinterName") or fields.get("cn"))[0] 
    135140            result = self.doSearch("(&(objectClass=pykotaGroupPQuota)(pykotaPrinterName=%s))" % printername, ["pykotaGroupName"])  
    136141            if result : 
     
    139144    def getGroupMembersNames(self, groupname) :         
    140145        """Returns the list of user's names which are member of this group.""" 
    141         result = self.doSearch("(&(objectClass=pykotaGroup)(pykotaGroupName=%s))" % groupname, ["memberUid"]) 
    142         if result : 
    143             return result[0][1]["memberUid"] 
     146        result = self.doSearch("(&(objectClass=pykotaGroup)(|(pykotaGroupName=%s)(cn=%s)))" % (groupname, groupname), ["memberUid", "uniqueMember", "member"]) 
     147        if result : 
     148            fields = result[0][1] 
     149            return fields.get("memberUid") or fields.get("uniqueMember") or fields.get("member") 
    144150         
    145151    def getUserGroupsNames(self, userid) :         
     
    177183        if result : 
    178184            username = result[0][1]["pykotaUserName"][0] 
    179             result = self.doSearch("(&(objectClass=pykotaAccountBalance)(pykotaUserName=%s))" % username, ["pykotaBalance", "pykotaLifeTimePaid"]) 
     185            result = self.doSearch("(&(objectClass=pykotaAccountBalance)(|(pykotaUserName=%s)(uid=%s)))" % (username, username), ["pykotaBalance", "pykotaLifeTimePaid"]) 
    180186            if result : 
    181187                fields = result[0][1] 
     
    185191        """Returns the current account balance for a given user id.""" 
    186192        # first get the user's name from the user id 
    187         result = self.doSearch("objectClass=pykotaAccount", ["pykotaUserName"], base=userid, scope=ldap.SCOPE_BASE) 
    188         if result : 
    189             username = result[0][1]["pykotaUserName"][0] 
    190             result = self.doSearch("(&(objectClass=pykotaAccountBalance)(pykotaUserName=%s))" % username, ["pykotaBalance", "pykotaLifeTimePaid"]) 
     193        result = self.doSearch("objectClass=pykotaAccount", ["pykotaUserName", "uid"], base=userid, scope=ldap.SCOPE_BASE) 
     194        if result : 
     195            fields = result[0][1] 
     196            username = (fields.get("pykotaUserName") or fields.get("uid"))[0] 
     197            result = self.doSearch("(&(objectClass=pykotaAccountBalance)(|(pykotaUserName=%s)(uid=%s)))" % (username, username), ["pykotaBalance", "pykotaLifeTimePaid"]) 
    191198            if result : 
    192199                fields = result[0][1]