Lade...
 

CX_USER - Benutzer

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:
...

 

Methodenverzeichnis (MDI)
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     VECTORject> 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

 

Datenverzeichnis (DDI)
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

 

Verwendung in AppsWH
Modul Kurzbeschreibung
user.mod Benutzer Basismodul
useredt.mod Benutzer Editiermodul
usersel.mod Benutzer Selektionsmodul
password.mod Passwort Modul