|
Lines 88-94
property_descriptions={
Link Here
|
| 88 |
syntax=univention.admin.syntax.gid, |
88 |
syntax=univention.admin.syntax.gid, |
| 89 |
multivalue=0, |
89 |
multivalue=0, |
| 90 |
include_in_default_search=1, |
90 |
include_in_default_search=1, |
| 91 |
options=['posix', 'samba'], |
|
|
| 92 |
required=1, |
91 |
required=1, |
| 93 |
may_change=1, |
92 |
may_change=1, |
| 94 |
identifies=1 |
93 |
identifies=1 |
|
Lines 361-367
class object(univention.admin.handlers.simpleLdap):
Link Here
|
| 361 |
# None ==> ldap has not been checked for servers with service "S4 Connector" |
360 |
# None ==> ldap has not been checked for servers with service "S4 Connector" |
| 362 |
# True ==> at least one server with IP address (aRecord) is present |
361 |
# True ==> at least one server with IP address (aRecord) is present |
| 363 |
# False ==> no server is present |
362 |
# False ==> no server is present |
| 364 |
if s4connector_present == None: |
363 |
if s4connector_present is None: |
| 365 |
searchResult = lo.search('(&(|(objectClass=univentionDomainController)(objectClass=univentionMemberServer))(univentionService=S4 Connector))', attr = ['aRecord']) |
364 |
searchResult = lo.search('(&(|(objectClass=univentionDomainController)(objectClass=univentionMemberServer))(univentionService=S4 Connector))', attr = ['aRecord']) |
| 366 |
s4connector_present = True |
365 |
s4connector_present = True |
| 367 |
if not [ ddn for (ddn, attr) in searchResult if attr.has_key('aRecord') ]: |
366 |
if not [ ddn for (ddn, attr) in searchResult if attr.has_key('aRecord') ]: |
|
Lines 399-409
class object(univention.admin.handlers.simpleLdap):
Link Here
|
| 399 |
|
398 |
|
| 400 |
time_start = time.time() |
399 |
time_start = time.time() |
| 401 |
|
400 |
|
| 402 |
self['users']=self['hosts']=self['nestedGroup']=[] |
401 |
self['users'] = [] |
| 403 |
if self.oldattr.has_key('uniqueMember'): |
402 |
self['hosts'] = [] |
| 404 |
groupMembers=self.oldattr['uniqueMember'] |
403 |
self['nestedGroup'] = [] |
| 405 |
|
404 |
for i in self.oldattr.get('uniqueMember', []): |
| 406 |
for i in groupMembers: |
|
|
| 407 |
if cache_uniqueMember.is_valid(i): |
405 |
if cache_uniqueMember.is_valid(i): |
| 408 |
membertype = cache_uniqueMember.get(i).get('type') |
406 |
membertype = cache_uniqueMember.get(i).get('type') |
| 409 |
if membertype == 'user': |
407 |
if membertype == 'user': |
|
Lines 433-446
class object(univention.admin.handlers.simpleLdap):
Link Here
|
| 433 |
time_end = time.time() |
431 |
time_end = time.time() |
| 434 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: open(): member check duration: %1.2fs' % (time_end - time_start)) |
432 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: open(): member check duration: %1.2fs' % (time_end - time_start)) |
| 435 |
|
433 |
|
| 436 |
|
434 |
self['allowedEmailUsers'] = self.oldattr.get('univentionAllowedEmailUsers', []) |
| 437 |
self['allowedEmailUsers'] = [] |
435 |
self['allowedEmailGroups'] = self.oldattr.get('univentionAllowedEmailGroups', []) |
| 438 |
if self.oldattr.has_key('univentionAllowedEmailUsers'): |
|
|
| 439 |
self['allowedEmailUsers'] = self.oldattr['univentionAllowedEmailUsers'] |
| 440 |
|
| 441 |
self['allowedEmailGroups'] = [] |
| 442 |
if self.oldattr.has_key('univentionAllowedEmailGroups'): |
| 443 |
self['allowedEmailGroups'] = self.oldattr['univentionAllowedEmailGroups'] |
| 444 |
|
436 |
|
| 445 |
self.save() |
437 |
self.save() |
| 446 |
|
438 |
|
|
Lines 448-457
class object(univention.admin.handlers.simpleLdap):
Link Here
|
| 448 |
ml = [] |
440 |
ml = [] |
| 449 |
uids = [] |
441 |
uids = [] |
| 450 |
members = [] |
442 |
members = [] |
| 451 |
searchResult = self.lo.search(base=self.dn, attr=['uniqueMember','memberUid']) |
443 |
for _dn, searchResult in self.lo.search(base=self.dn, attr=['uniqueMember', 'memberUid']): |
| 452 |
if searchResult: |
444 |
uids = searchResult.get('memberUid', []) |
| 453 |
uids = searchResult[0][1].get('memberUid',[]) |
445 |
members = searchResult.get('uniqueMember', []) |
| 454 |
members = searchResult[0][1].get('uniqueMember',[]) |
|
|
| 455 |
|
446 |
|
| 456 |
add_uidlist = [] |
447 |
add_uidlist = [] |
| 457 |
for uid in uidlist: |
448 |
for uid in uidlist: |
|
Lines 484-493
class object(univention.admin.handlers.simpleLdap):
Link Here
|
| 484 |
ml = [] |
475 |
ml = [] |
| 485 |
uids = [] |
476 |
uids = [] |
| 486 |
members = [] |
477 |
members = [] |
| 487 |
searchResult = self.lo.search(base=self.dn, attr=['uniqueMember','memberUid']) |
478 |
for _dn, searchResult in self.lo.search(base=self.dn, attr=['uniqueMember', 'memberUid']): |
| 488 |
if searchResult: |
479 |
uids = searchResult.get('memberUid', []) |
| 489 |
uids = searchResult[0][1].get('memberUid',[]) |
480 |
members = searchResult.get('uniqueMember', []) |
| 490 |
members = searchResult[0][1].get('uniqueMember',[]) |
|
|
| 491 |
|
481 |
|
| 492 |
remove_uidlist = [] |
482 |
remove_uidlist = [] |
| 493 |
for uid in uidlist: |
483 |
for uid in uidlist: |
|
Lines 551-577
class object(univention.admin.handlers.simpleLdap):
Link Here
|
| 551 |
try: |
541 |
try: |
| 552 |
self.alloc.append(('groupName', self['name'])) |
542 |
self.alloc.append(('groupName', self['name'])) |
| 553 |
name=univention.admin.allocators.request(self.lo, self.position, 'groupName', value=self['name']) |
543 |
name=univention.admin.allocators.request(self.lo, self.position, 'groupName', value=self['name']) |
| 554 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: arequested groupname without exception') |
544 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: requested groupname without exception') |
| 555 |
except univention.admin.uexceptions.permissionDenied, e: |
545 |
except univention.admin.uexceptions.permissionDenied, e: |
| 556 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: arequested groupname with permissionDenied exception') |
546 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: requested groupname with permissionDenied exception') |
| 557 |
raise e |
547 |
raise e |
| 558 |
except univention.admin.uexceptions.licenseNotFound, e: |
548 |
except univention.admin.uexceptions.licenseNotFound, e: |
| 559 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: arequested groupname with licenseNotFound exception') |
549 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: requested groupname with licenseNotFound exception') |
| 560 |
raise e |
550 |
raise e |
| 561 |
except univention.admin.uexceptions.licenseInvalid, e: |
551 |
except univention.admin.uexceptions.licenseInvalid, e: |
| 562 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: arequested groupname with licenseInvalid exception') |
552 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: requested groupname with licenseInvalid exception') |
| 563 |
raise e |
553 |
raise e |
| 564 |
except univention.admin.uexceptions.licenseExpired, e: |
554 |
except univention.admin.uexceptions.licenseExpired, e: |
| 565 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: arequested groupname with licenseExpired exception') |
555 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: requested groupname with licenseExpired exception') |
| 566 |
raise e |
556 |
raise e |
| 567 |
except univention.admin.uexceptions.licenseWrongBaseDn, e: |
557 |
except univention.admin.uexceptions.licenseWrongBaseDn, e: |
| 568 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: arequested groupname with licenseWrongbaseDn exception') |
558 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: requested groupname with licenseWrongbaseDn exception') |
| 569 |
raise e |
559 |
raise e |
| 570 |
except univention.admin.uexceptions.licenseDisableModify, e: |
560 |
except univention.admin.uexceptions.licenseDisableModify, e: |
| 571 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: arequested groupname with licenseDisableModify exception') |
561 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: requested groupname with licenseDisableModify exception') |
| 572 |
raise e |
562 |
raise e |
| 573 |
except univention.admin.uexceptions.base, e: |
563 |
except univention.admin.uexceptions.base, e: |
| 574 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: arequested groupname with base (%s) exception'%e) |
564 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: requested groupname with base (%s) exception'%e) |
| 575 |
error=1 |
565 |
error=1 |
| 576 |
|
566 |
|
| 577 |
if not name or error: |
567 |
if not name or error: |
|
Lines 584-603
class object(univention.admin.handlers.simpleLdap):
Link Here
|
| 584 |
raise univention.admin.uexceptions.groupNameAlreadyUsed, ': %s' % (name) |
574 |
raise univention.admin.uexceptions.groupNameAlreadyUsed, ': %s' % (name) |
| 585 |
return [] |
575 |
return [] |
| 586 |
|
576 |
|
| 587 |
ocs=['top'] |
577 |
ocs = ['top'] |
| 588 |
al=[] |
578 |
al = [('objectClass', ocs)] |
| 589 |
if 'posix' in self.options: |
579 |
if 'posix' in self.options: |
| 590 |
ocs.append('posixGroup') |
580 |
ocs.append('posixGroup') |
| 591 |
ocs.append('univentionGroup') |
581 |
else: |
|
|
582 |
ocs.append('organizationalRole') # any STRUCTURAL class with 'cn' |
| 583 |
ocs.append('univentionGroup') |
| 592 |
if 'samba' in self.options: |
584 |
if 'samba' in self.options: |
| 593 |
ocs.append('sambaGroupMapping') |
585 |
ocs.append('sambaGroupMapping') |
| 594 |
if not 'posix' in self.options: |
|
|
| 595 |
ocs.append('organizationalRole') |
| 596 |
al.append(('sambaSID', [self.groupSid])) |
586 |
al.append(('sambaSID', [self.groupSid])) |
| 597 |
|
587 |
if set(('posix', 'samba')) & set(self.options): |
| 598 |
al.append(('gidNumber', [self.gidNum])) |
588 |
al.append(('gidNumber', [self.gidNum])) |
| 599 |
|
|
|
| 600 |
al.insert(0, ('objectClass', ocs)) |
| 601 |
return al |
589 |
return al |
| 602 |
except: |
590 |
except: |
| 603 |
self.cancel() |
591 |
self.cancel() |