Changeset 174
- Timestamp:
- 12/08/05 18:04:07 (3 years ago)
- Files:
-
- ldapplugin/0.9/AUTHORS (added)
- ldapplugin/0.9/ldapplugin/model.py (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
ldapplugin/0.9/ldapplugin/model.py
r135 r174 34 34 'store_bind', 'store_user', 'store_passwd' ] 35 35 36 LDAP_DIRECTORY_PARAMS = [ 'host','port','basedn', 36 LDAP_DIRECTORY_PARAMS = [ 'host','port', 37 'basedn', 'user_basedn', 'group_basedn', 37 38 'groupname','groupmember', 38 39 'groupattr','uidattr' ] … … 62 63 63 64 def get_permission_groups(self, username): 64 self.env.log.debug('get_permission_group ' + username)65 66 65 groups = ['anonymous'] 67 66 if username and username != 'anonymous': … … 109 108 # the less recently uses entries 110 109 cache_keys = self._cache.keys() 111 cache_keys.sort(lambda x,y: cmp(self._cache[x][0], self._cache[y][0])) 110 cache_keys.sort(lambda x,y: cmp(self._cache[x][0], 111 self._cache[y][0])) 112 112 # discards the 5% oldest 113 113 old_keys = cache_keys[:(5*self._cache_size)/100] … … 297 297 self.port = 389 298 298 self.basedn = '' 299 self.user_basedn = None 300 self.group_basedn = None 299 301 self.groupname = 'groupofnames' 300 302 self.groupmember = 'member' … … 303 305 for key in ldap.keys(): 304 306 self.__setattr__(key, ldap[key]) 307 if not self.user_basedn: 308 self.user_basedn = self.basedn 309 if not self.group_basedn: 310 self.group_basedn = self.basedn 305 311 self._uid = None 306 312 self._password = None 307 313 308 314 def basedn(self): 309 return self.basedn; 315 return self.basedn 316 317 def user_basedn(self): 318 return self.user_basedn 319 320 def group_basedn(self): 321 return self.group_basedn 310 322 311 323 def set_credentials(self, uid, password): … … 329 341 if ( self._uid.find('=') == -1 ): 330 342 self._uid = '%s=%s' % (self.uidattr, self._uid) 331 self._ds.simple_bind_s(self._uid + ',' + self.basedn, self._password) 343 self._ds.simple_bind_s(self._uid + ',' + self.basedn, 344 self._password) 332 345 else: 333 346 self._ds.simple_bind_s() … … 341 354 if not self.__dict__.has_key('_ds') or not self.__dict__['_ds']: 342 355 self._open() 343 sr = self._ds.search_s(self.basedn, ldap.SCOPE_SUBTREE, filter, attributes) 356 sr = self._ds.search_s(self.basedn, ldap.SCOPE_SUBTREE, 357 filter, attributes) 344 358 return sr 345 359 … … 352 366 if not self.__dict__.has_key('_ds') or not self.__dict__['_ds']: 353 367 self._open() 354 cr = self._ds.compare_s(dn + "," + self.basedn, attribute, value)368 cr = self._ds.compare_s(dn, attribute, value) 355 369 return cr 356 370 … … 376 390 377 391 def is_in_group(self, uid, group): 378 dn = self.groupattr + "=" + group379 value = self.uidattr + "=" + uid + "," + self.basedn392 dn = '%s=%s,%s' % (self.groupattr, group, self.group_basedn) 393 value = '%s=%s,%s' % (self.uidattr, uid, self.user_basedn) 380 394 for attempt in range(2): 381 395 cr = self._compare(dn, self.groupmember, value)
