def process(self, obj, key, valDict): if len(valDict[key]['value']) and type(valDict[key]['value'][0]) in [str, unicode]: lm, nt = smbpasswd.hash(valDict[key]['value'][0]) valDict['sambaNTPassword'] = GOsaObjectFactory.createNewProperty(valDict[key]['backend'], 'String', value=[nt]) valDict['sambaLMPassword'] = GOsaObjectFactory.createNewProperty(valDict[key]['backend'], 'String', value=[lm]) else: raise ValueError("Unknown input type for filter %s. Type is '%s'!" % ( self.__class__.__name__, type(valDict[key]['value']))) return key, valDict
def process(self, obj, key, valDict): mapping = { 'D': 'accountDisabled', 'H': 'homeDirectoryRequired', 'I': 'interDomainTrust', 'L': 'isAutoLocked', 'M': 'anMNSLogonAccount', 'N': 'passwordNotRequired', 'S': 'serverTrustAccount', 'T': 'temporaryDuplicateAccount', 'U': 'normalUserAccount', 'W': 'worktstationTrustAccount', 'X': 'passwordDoesNotExpire'} # Add newly introduced properties. for src in mapping: valDict[mapping[src]] = GOsaObjectFactory.createNewProperty(valDict[key]['backend'], 'Boolean', value=[False], skip_save=True) valDict[key]['dependsOn'].append(mapping[src]) # Now parse the existing acctFlags if len(valDict[key]['value']) >= 1: smbAcct = valDict[key]['value'][0] for src in mapping: if src in set(smbAcct): valDict[mapping[src]]['value'] = [True] return key, valDict
# Register pseudo event handler def l(event): print "%s event catched: %s of %s" % (event.__class__.__name__, event.reason, event.uuid) zope.event.subscribers.append(l) # use create, update, remove, move, extend, retract if len(sys.argv) != 2: mode = "update" else: mode = sys.argv[1] del sys.argv[1] f = GOsaObjectFactory() # print f.identifyObject(u"cn=Klaus Mustermann,ou=people,dc=gonicus,dc=de") if mode == "create": p = f.getObject("GenericUser", u"ou=people,dc=gonicus,dc=de", mode="create") if mode in ["update", "move", "remove"]: p = f.getObject("GenericUser", u"cn=Klaus Mustermann,ou=people,dc=gonicus,dc=de") if mode == "extend": p = f.getObject("PosixUser", u"cn=Klaus Mustermann,ou=people,dc=gonicus,dc=de", mode="extend") p.uidNumber = 4711 p.gidNumber = 4711 p.homeDirectory = "/home/cajus" p.commit() exit(0)
#!/usr/bin/env python # -*- coding: utf-8 -*- import time import datetime import sys import os import pprint from gosa.agent.objects import GOsaObjectFactory f = GOsaObjectFactory() p = f.getObject('SambaUser', u"cn=Playground Tester,ou=people,dc=gonicus,dc=de", mode="update") for prop in p.listProperties(): print "Attribute %s: %s" % (prop.ljust(40), getattr(p, prop)) #p.sambaLogonTime = datetime.datetime.today() #p.sambaPwdCanChange = datetime.datetime.today() #p.sambaKickoffTime = datetime.datetime.today() #p.sambaLogoffTime = datetime.datetime.today() #p.sambaPwdLastSet = datetime.datetime.today() #p.sambaBadPasswordTime = datetime.datetime.today() #p.sambaPwdMustChange = datetime.datetime.today() #p.sambaBadPasswordCount = 5 #p.displayName = "PeterPan" #p.passwordNotRequired = True p.serverTrustAccount = not p.serverTrustAccount p.sambaHomePath = r"\\hallo\welt" p.sambaHomeDrive = "D:" for entry in p.sambaLogonHours: