@classmethod def FitLevel(self, node): if node.name.endswith("$"): return 999 else: return -1 def __init__(self, dlg, notebook, resname=None): SpecificEntry.__init__(self, dlg, notebook, resname) _SambaRidObject.__init__(self) # self.Bind("sambaDomainName", self.OnChangeDomain) SpecificEntry.AddClass(SambaComputer) Entry.addNewEntryClass(SambaComputer) class SambaAccount(SpecificEntry, _SambaRidObject): name=xlt("Samba") def __init__(self, dlg, notebook, resname=None): SpecificEntry.__init__(self, dlg, notebook, resname) _SambaRidObject.__init__(self) self.Bind("sambaDomainName", self.OnChangeDomain) self.Bind("sambaSamAccount", self.OnCheckSamba) self.Bind("CantChangePassword PasswordNeverExpires MustChangePassword AccountEnabled", self.OnCheckboxes) def OnCheckSamba(self, evt): self.OnCheckObjectClass(evt) if self.sambaSamAccount:
uids.append(uid) self.dialog.SetValue(self.memberUidOid, uids, self) def OnDelMember(self, evt): lv=self['Members'] uids=self.dialog.attribs[self.memberUidOid].GetValue()[:] rows=lv.GetSelection() rows.reverse() for row in rows: uid=lv.GetItemText(row, 0) uids.remove(uid) lv.DeleteItem(row) self.dialog.SetValue(self.memberUidOid, uids, self) @staticmethod def New(parentWin, parentNode): adm.DisplayDialog(Entry.Dlg, parentWin, None, parentNode, Group) SpecificEntry.AddClass(Group) Entry.addNewEntryClass(Group) class OrganizationalUnit(SpecificEntry): name=xlt("Organizational Unit") shortname=xlt("Org Unit") icon="OrgUnit" canClasses="organizationalUnit" startClasses="organizationalUnit" SpecificEntry.AddClass(OrganizationalUnit) Entry.addNewEntryClass(OrganizationalUnit)
startClasses="inetOrgPerson" @classmethod def GetClassIconName(self, node): if node.HasObjectClass("sambaSAMAccount"): return "SamUser" elif node.HasObjectClass("posixAccount"): return "PosixUser" return self.icon @staticmethod def New(parentWin, parentNode): adm.DisplayDialog(Entry.Dlg, parentWin, None, parentNode, UserAccount) SpecificEntry.AddClass(UserAccount) Entry.addNewEntryClass(UserAccount) class ShadowAccount(SpecificEntry): name=xlt("POSIX/Shadow") def __init__(self, dlg, notebook, resname=None): SpecificEntry.__init__(self, dlg, notebook, resname) self.Bind("Expires", wx.EVT_CHECKBOX, self.OnExpire) self.Bind("GenerateUid", self.OnGenerateUid) self.Bind("GenerateGid", self.OnGenerateGid) def Go(self): SpecificEntry.Go(self) self.OnExpire()