Changeset 847
- Timestamp:
- 06/11/06 18:59:37 (2 years ago)
- Files:
-
- ldapplugin/0.10/ldapplugin/model.py (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
ldapplugin/0.10/ldapplugin/model.py
r492 r847 95 95 u = self.env.config.get('ldap', 'group_user') 96 96 p = self.env.config.get('ldap', 'group_passwd') 97 self._ldap.set_credentials(u, p) 97 self._ldap.set_credentials(u.encode('ascii'), 98 p.encode('ascii')) 98 99 99 100 # retrieves the user groups from LDAP … … 144 145 self._ldap = None 145 146 self._permattr = self.env.config.get('ldap', 'permattr', 'tracperm') 147 self._permattr = self._permattr.encode('ascii') 146 148 # regular expression 147 149 self._re = re.compile('^(.+?)=(.+?),(.+)$') … … 209 211 self._openldap() 210 212 perms = [] 211 dns = self._ldap.get_dn(self.env.config.get('ldap', 'permfilter', 212 'objectclass=*')) 213 basedn = self.env.config.get('ldap','basedn','') 213 filter = self.env.config.get('ldap', 'permfilter', 'objectclass=*') 214 basedn = self.env.config.get('ldap','basedn','').encode('ascii') 215 grpattr = self.env.config.get('ldap', 'groupattr', 'cn').encode('ascii') 216 uidattr = self.env.config.get('ldap', 'uidattr', 'uid').encode('ascii') 217 dns = self._ldap.get_dn(filter.encode('ascii')) 214 218 for dn in dns: 215 219 m = self._re.search(dn) 216 220 user = None 217 221 if m: 218 if m.group(3).lower() == basedn.lower():219 if m.group(1).lower() == \220 self.env.config.get('ldap', 'groupattr', 'cn'):222 subtree = m.group(3).lower() 223 if subtree == self._ldap.group_basedn.lower(): 224 if m.group(1).lower() == grpattr: 221 225 user = "@%s" % m.group(2) 222 226 dn = "%s=%s" % (m.group(1),m.group(2)) 223 elif m.group(1).lower() == \ 224 self.env.config.get('ldap', 'uidattr', 'uid'): 227 else: 228 continue 229 if subtree == self._ldap.user_basedn.lower(): 230 if m.group(1).lower() == uidattr: 225 231 user = m.group(2) 226 232 dn = "%s=%s" % (m.group(1),m.group(2)) … … 245 251 permlist = self._get_permissions(uid) 246 252 if action not in permlist: 247 xaction = self._build_action(action) 253 xaction = self._build_action(action) 248 254 self._ldap.add_attribute(uid, self._permattr, xaction) 249 255 except ldap.LDAPError, e: … … 281 287 u = self.env.config.get('ldap', 'store_user') 282 288 p = self.env.config.get('ldap', 'store_passwd') 283 self._ldap.set_credentials(u, p) 289 self._ldap.set_credentials(u.encode('ascii'), 290 p.encode('ascii')) 284 291 285 292 def _create_uid(self, username): … … 287 294 if username.startswith('@'): 288 295 prefix = self.env.config.get('ldap', 'groupattr', 'cn') 289 return '%s=%s' % (prefix , username[1:])296 return '%s=%s' % (prefix.encode('ascii'), username[1:]) 290 297 else: 291 298 prefix = self.env.config.get('ldap', 'uidattr', 'uid') 292 return '%s=%s' % (prefix , username)299 return '%s=%s' % (prefix.encode('ascii'), username) 293 300 294 301 def _get_permissions(self, uid):
