CX_USER
Klassenhierarchie
Beschreibung:
Diese Klasse bildet einen Benutzer ab.
Cryptographie-Informationen
Das Nutzerpasswort wird in gehashter Form im Slot password.password hinterlegt und kann per PasswordMA() geändert werden. Per CheckPasswordHash kann geprüft werden, ob ein Klartext-Passwort zu dem gehashten Password passt und per LoginHash kann der Nutzer mit seinen Rechten am System angemeldet werden.
196454
Die Hash-Algorithmen, die zur Zeit zur Auswahl stehen, sind: "bcrypt" und "SHA1" und werden im Slot password.standard hinterlegt. Dieser Slot wird automatisch von PasswordMA() auf "bcrypt" gesetzt, falls er nicht anderweitig gesetzt ist. Ist der Slot nicht gesetzt, dann ist das Passwort mit "SHA1" gehashed. Wird der verwendete Algorithmus geändert, dann muss das Password durch einen Aufruf von PasswordMA() neu gehashed werden, weil der Hash ansonsten nicht mehr zum Passwort passt und CheckPasswordHash und LoginHash dann nicht mehr richtig arbeiten können.
bcrypt ist der cryptographisch sicherere Hash-Algorithmus und sollte SHA1 langfristig ablösen.
Code-Beispiel:
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
CheckPassword | STRING | INTEGER | Überprüfung des Passworts. | |
CheckPasswordHash | STRING | INTEGER | Überprüfung des Passworts (gespeichertes Passwort ist ein Hashwert). | |
ClearingObjectOfPartner | STRING, INTEGER | OBJECT | ||
HasPassword | INTEGER | INTEGER | ||
Login | STRING | INTEGER | Einloggen | |
LoginHash | STRING | INTEGER | Einloggen (gespeichertes Passwort ist ein Hashwert) | |
LoginSID | INTEGER | Einloggen über SID ab DLL Version 4.7.176877 | ||
Logout | Ausloggen | |||
PasswordMA | * | INTEGER, INTEGER | Zugriff auf das Passwort (gespeichertes Passwort ist ein Hashwert) | |
ReinitializeLogin | ? | |||
SanityCheck | INTEGER | Prüfung auf Konsistenz des Objektes | ||
SetLogoutTime | OBJECT, OBJECT | Auslog-Zeit setzen | ||
This | OBJECT | |||
Access | STRING, INTEGER | OBJECT | Liefert Zugangsobjekt des gewünschten Typs (Ergebnis ist das erste gefundene Objekt) | |
AllAccess | STRING, INTEGER | VECTOR
197549 COLLECTION |
Liefert Zugangsobjekt des gewünschten Typs (Ergebnis sind alle gefundenen Objekte) | |
Address | OBJECT | Liefert die Adresse | ||
AllocatedObject | STRING, INTEGER | OBJECT | Liefert allokiertes Objekt des gewünschten Typs | |
AllocatedObjectMA | * | STRING, INTEGER | Zugriff auf allokierte Objekte eines gewünschten Typs | |
Allocation | STRING, INTEGER | OBJECT | Liefert Allokation des gewünschten Typs | |
AllocationMA | * | STRING, INTEGER | Zugriff auf Allokation des gewünschten Typs | |
Allocations | COLLECTION | Allokationen, die sich nicht auf dieses Objekt beziehen | ||
Allocators | COLLECTION | Allokationen, die sich auf dieses Objekt beziehen | ||
CastedStructureByCondition | STRING | OBJECT | ||
ClassFilter | STRING, INTEGER | OBJECT | Dieses Objekt, wenn es einer bestimmten Klasse entspricht | |
ClearingObject | STRING, INTEGER | OBJECT | Zuordnung zu Abrechnungsobjekten | |
ClearingObjectMA | * | STRING, INTEGER | Zuordnungen zu Abrechnungsobjekten | |
ConditionedFilter | STRING | OBJECT | ||
ConditionedFilter2 | OBJECT | OBJECT | ||
ConnectStateStructure | OBJECT, STRING | Verbinden mit der Status-Struktur | ||
Customer | OBJECT | Liefert Abrechnungsobjekt "Kunde" (CX_CUSTOMER) | ||
CyberEnterprise® | OBJECT | Liefert Abrechnungsobjekt "Mandant" (CX_CYBER_ENTERPRISE) | ||
Deleted | INTEGER | Objekt als gelöscht markiert? | ||
DeRegisterStructures | OBJECT | ? | ||
Description | STRING | Bezeichnung dieses Objektes | ||
Employee | OBJECT | Liefert Abrechnungsobjekt "Arbeitnehmer" (CX_EMPLOYEE) | ||
EmployeeByFirstChoiceOfCE | OBJECT | Liefert vom Partner das Abrechnungsobjekt "Arbeitnehmer" (CX_EMPLOYEE), der (nach Möglichkeit) beim aktuellen Mandanten beschäftigt ist | ||
EmployeeOfCE | OBJECT | Liefert vom Partner das Abrechnungsobjekt "Arbeitnehmer" (CX_EMPLOYEE), der beim aktuellen Mandanten beschäftigt ist | ||
EvaluateTotalMonitors | STRING, INTEGER, STRING | OBJECT | ? | |
Fax | OBJECT | Liefert die Faxnummer | ||
Flextimer | OBJECT | Liefert Abrechnungsobjekt "Gleitzeit-Mitarbeiter" (CX_FLEXTIMER) | ||
ForceMonitor | STRING | OBJECT | ? | |
GeographicPosition | OBJECT | Liefert die geografische Position | ||
GetDomain | INTEGER | Domain dieses Objektes | ||
GetSiblings | COLLECTION | Alle Siblings dieses Objektes | ||
GetSiblings2 | COLLECTION | Alle Siblings dieses Objektes | ||
GetSlotEntries | VECTOR |
Rückgabe von internen Informationen zu Slots | ||
GetStructure | OBJECT | OBJECT | Untergeordnete Struktur suchen, die zur selben Hierarchie gehört | |
InsertMonitor | OBJECT | ? | ||
LastUpdate | OBJECT | Datum des letzten Schreibzugriffs | ||
LastUser | INTEGER | User, der zuletzt schreibend auf das Objekt zugegriffen hat | ||
Link | OBJECT | Dieses Objekt in die Liste der Objekte mit Gültigkeit einfügen | ||
MasterObject | OBJECT | ? | ||
Monitor | STRING | OBJECT | ? | |
Name | INTEGER | STRING | Name formatiert zurückgeben | |
NextValidObject | OBJECT | Zeitlich nachfolgendes Gültigkeitsobjekt | ||
PartnerAccess | STRING | OBJECT | Zuordnung zu Abrechnungsobjekten | |
PersonalAccount | OBJECT | Liefert Abrechnungsobjekt "Personenkonto" (CX_PERSONAL_ACCOUNT) | ||
Phone | OBJECT | Liefert die Telefonnummer | ||
POBoxAddress | OBJECT | Liefert die Postfach-Adresse | ||
PreviousValidObject | OBJECT | Zeitlich vorangehendes Gültigkeitsobjekt | ||
RegisterStructures | OBJECT | ? | ||
RegisteredStructure | OBJECT | ? | ||
RemoveMonitor | OBJECT | ? | ||
RemoveStateStructure | STRING | Status-Struktur nach uniqueID finden und Verbindung lösen | ||
Representative | OBJECT | Liefert Abrechnungsobjekt "Vertreter" (CX_REPRESENTATIVE) | ||
RestrictedValidity | * | Gültigkeitsbereich eingeschränkt? | ||
SalaryMan | OBJECT | Liefert Abrechnungsobjekt "Gehaltsempfänger" (CX_SALARY_MAN) | ||
SetDomain | INTEGER, INTEGER | Domain setzen | ||
SetStructure | OBJECT | Stellt sicher, dass eine Struktur zur untergeordneten Struktur wird | ||
SexTitle | INTEGER | STRING | Anrede zurückliefern | |
ShortName | STRING | Kurzbezeichnung dieses Objektes | ||
Siblings | * | Objekte mit Gültigkeit | ||
Site | OBJECT | Liefert den Platz | ||
SpanDateValidity | * | Gültigkeitsspanne | ||
Speech | INTEGER, INTEGER, INTEGER | STRING | Vollständige Anrede erstellen | |
StateStructure | STRING | OBJECT | Status-Struktur nach uniqueID (STRING) finden (nicht gewrappt) | |
StateStructureWrapper | STRING | OBJECT | Status-Struktur nach uniqueID finden | |
StreetAddress | OBJECT | Liefert die Straßen-Adresse | ||
string | INTEGER | CX_STRING | Liefert die String-Darstellung des Objektes | |
StructureByCondition | STRING | OBJECT | Untergeordnete Struktur mit einer bestimmten Bedingung | |
StructureByID | STRING | OBJECT | Untergeordnete Struktur mit einem bestimmten eindeutigen Schlüssel | |
StructureByIDMA | * | STRING | Untergeordnete Strukturen mit einem bestimmten eindeutigen Schlüssel | |
StructureByType | STRING, INTEGER | OBJECT | Untergeordnete Struktur eines bestimmten Typs | |
SubObjects | INTEGER | COLLECTION | ? | |
Supplier | OBJECT | Liefert Abrechnungsobjekt "Lieferant" (CX_SUPPLIER) | ||
Teletex | OBJECT | Liefert die Teletexnummer | ||
Telex | OBJECT | Liefert die Telexnummer | ||
Title | STRING | Titel zurückgeben | ||
TotalMonitors | STRING, INTEGER, STRING | OBJECT | ? | |
TriggeredStateStructure | STRING | OBJECT | Versucht Status-Struktur weiterzuschalten und gibt die neue Status-Struktur (nicht gewrappt) zurück | |
TriggeredStateStructureWrapper | STRING | OBJECT | Versucht Status-Struktur weiterzuschalten und gibt die neue Status-Struktur (gewrappt) zurück | |
TriggerStateStructures | Schaltet alle Status-Strukturen weiter | |||
UniqueID | STRING | Inhalt des festen Datenfeldes "uniqueID" | ||
Unlink | Dieses Objekt aus der Liste der Objekte mit Gültigkeit entfernen | |||
Unlink2 | Dieses Objekt aus der Liste der Objekte mit Gültigkeit entfernen | |||
User | OBJECT | Liefert Abrechnungsobjekt "Benutzer" (CX_USER) | ||
Valid | OBJECT | INTEGER | Gültigkeit prüfen | |
ValidSince | OBJECT | Beginn der Gültigkeitsspanne | ||
ValidToday | INTEGER | Heute gültig? | ||
ValidUntil | OBJECT | Ende der Gültigkeitsspanne | ||
VerifySiblings | INTEGER | Ring der Austauschobjekte prüfen |
* MA = Member-Access-Funktion,
grau unterlegt = geerbte Funktion
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|---|---|---|---|
accessControlSID | STRING | SID für Login via SID (LoginSID) | ||
accessSecurity | POINTER | CX_SECURITY | Die Zugriffsrechte des Nutzers, die beim Login im System aktiviert werden. | |
lastLogin | CX_GLOBAL_DATETIME | Datum und Uhrzeit des letzten Logins | ||
lastLogout | CX_GLOBAL_DATETIME | Datum und Uhrzeit des letzten Logouts | ||
password | POINTER | CX_EXPANDABLE | Passwort | |
terminal | STRING | Rechnername (Terminal), an dem der Benutzer eingeloggt ist/war | ||
userNumber | CX_SHORT | Usernummer | ||
allocations | REL_MN | CX_EXPANDABLE | ? | |
clearingObjects | REL_MN | CX_CLEARING_OBJECT | Abrechnungskreise | |
generalTerms | REL_1M | CX_GENERAL_TERMS | ? | |
monitors | REL_MN | CX_MONITOR | ? | |
partner | REL_1M | CX_PARTNER | Partner, den dieser Typ beschreibt | |
partnerCastControl | INTEGER | Flags | ||
structures | REL_MN | CX_EXPANDABLE | Organisations-Strukturen | |
uniqueID | STRING | * | Eindeutiger Schlüssel | |
validity | POINTER | CX_VALIDITY | Gültigkeitszeitraum des Objektes |
* I = Indizierbares Datenfeld,
grau unterlegt = geerbtes Datenfeld
Modul | Kurzbeschreibung |
---|---|
user.mod | Benutzer Basismodul |
useredt.mod | Benutzer Editiermodul |
usersel.mod | Benutzer Selektionsmodul |
password.mod | Passwort Modul |