TBeAlternativeUserBusinessController
Die Klasse TBeAlternativeUserBusinessController kapselt alle Funktionalitäten die zum Anlegen von Einträgen in den alternativen Logins benötigt werden.
Eigenschaften
|
Eigenschaft |
Beschreibung |
|---|---|
|
CbDataModule:O |
Datenmodul auf dem der BusinessController arbeitet. |
|
Name:C |
|
|
Tag:N |
|
Methoden
|
Methode |
Beschreibung |
|---|---|
|
CbInsert_AlternativeUser(aAlternativeUserBO:O) |
Erstelle den im übergebenen BO einen neuen alternativen Login und verbleibt im Bearbeitungs-Modus |
|
CbEdit_AlternativeUser(aAlternativeUserBO:O) |
Bearbeiten eines existierenden im übergebenen BO positionierten alternativen Login. |
|
CbDelete_AlternativeUser(aAlternativeUserBO:O, aPermissionSubjectBO:O, aPermissionRoleBO:O, aPermissionRoleAssignmentBO:O) |
Entfernt den im übergebenen BO positionierten alternativen Login |
|
CbPost_AlternativeUser(aAlternativeUserBO:O, aPermissionSubjectBO:O, aPermissionRoleBO:O, aPermissionRoleAssignmentBO:O) |
Speichern den alternativen Login im übergebenen und im Neuanlage-/Bearbeitungsmodus befindlichen BO. |
|
CbCancel_AlternativeUser(aAlternativeUserBO:O) |
Neuanlage/Bearbeitung eines alternativen Logins abbrechen. |
Beispiel
| nAlternativeID |
nAlternativeID := -1, // Benutzer im negativen Bereich sollten nicht existieren
//******************************************************************************
function AddAlternativeLogin(cLoginName, cPassword, cType, nAssociation, cUserNo)
| oBO, oBC, oDM, oBSC, oPRO, oPAO |
oBO := CreateObject('TBeAlternativeUserBO'),
oBC := CreateObject('TBeAlternativeUserBusinessController'),
oDM := CreateObject('TBeDBGet'),
oBSC := CreateObject('TBePermissionSubjectBO'),
oPRO := CreateObject('TBePermissionRoleBO'),
oPAO := CreateObject('TBePermissionRoleAssignmentBO'),
startseq
oBC.CbDataModule := oDM,
DBStartTrans(oDM.ADSConnection),
oBC.CbInsert_AlternativeUser(oBO),
// Name und Password sind Case-Sensitive
oBO.CbLogonName := cLoginName,
oBO.CbUserNoStr := cUserNo,
// Es ist nur möglich sich diesem Hash verfahren einzuloggen (WEB-Tech)
oBO.CbPasswordEncrypted := GeneratePasswordHash(cPassword, ccmHex, hfSHA512),
oBO.CbLoginType := cType,
oBO.CbCustomerNo := nAssociation,
oBC.CbPost_AlternativeUser(oBO, oBSC, oPRO, oPAO),
DBCommit(oDM.ADSConnection),
nAlternativeID := oBO.CbID,
writeln(nAlternativeID),
always
if DBInTrans(oDM.ADSConnection) then
DBRollback(oDM.ADSConnection),
endif,
DestroyObject(oPAO),
DestroyObject(oPRO),
DestroyObject(oBSC),
DestroyObject(oDM),
DestroyObject(oBC),
DestroyObject(oBO),
stopseq,
end,
function EditAlternativeLogin(nId, cPassword)
| oBO, oBC, oDM, oBSC, oPRO, oPAO |
oBO := CreateObject('TBeAlternativeUserBO'),
oBC := CreateObject('TBeAlternativeUserBusinessController'),
oDM := CreateObject('TBeDBGet'),
oBSC := CreateObject('TBePermissionSubjectBO'),
oPRO := CreateObject('TBePermissionRoleBO'),
oPAO := CreateObject('TBePermissionRoleAssignmentBO'),
startseq
oBC.CbDataModule := oDM,
DBStartTrans(oDM.ADSConnection),
oBO.CbGoToId(nId),
oBC.CbEdit_AlternativeUser(oBO),
// Es ist nur möglich sich diesem Hash verfahren einzuloggen (WEB-Tech)
oBO.CbPasswordEncrypted := GeneratePasswordHash(cPassword, ccmHex, hfSHA512),
oBC.CbPost_AlternativeUser(oBO, oBSC, oPRO, oPAO),
DBCommit(oDM.ADSConnection),
always
if DBInTrans(oDM.ADSConnection) then
DBRollback(oDM.ADSConnection),
endif,
DestroyObject(oPAO),
DestroyObject(oPRO),
DestroyObject(oBSC),
DestroyObject(oDM),
DestroyObject(oBC),
DestroyObject(oBO),
stopseq,
end,
//******************************************************************************
function DeleteAlternativeLogin(nId)
| oBO, oBC, oDM, oBSC, oPRO, oPAO |
oBO := CreateObject('TBeAlternativeUserBO'),
oBC := CreateObject('TBeAlternativeUserBusinessController'),
oDM := CreateObject('TBeDBGet'),
oBSC := CreateObject('TBePermissionSubjectBO'),
oPRO := CreateObject('TBePermissionRoleBO'),
oPAO := CreateObject('TBePermissionRoleAssignmentBO'),
startseq
oBC.CbDataModule := oDM,
DBStartTrans(oDM.ADSConnection),
oBO.CbGoToId(nId),
oBC.CbDelete_AlternativeUser(oBO, oBSC, oPRO, oPAO),
//oBC.CbPost_AlternativeUser(oBO),
DBCommit(oDM.ADSConnection),
always
if DBInTrans(oDM.ADSConnection) then
DBRollback(oDM.ADSConnection),
endif,
DestroyObject(oPAO),
DestroyObject(oPRO),
DestroyObject(oBSC),
DestroyObject(oDM),
DestroyObject(oBC),
DestroyObject(oBO),
stopseq,
end,
// Create an alternative login for Customer 10000001
AddAlternativeLogin('ALD_USER1', 'be32', '30', 10000001, '65'),
// Updates with a new password
EditAlternativeLogin(nAlternativeID, 'be64'),
DeleteAlternativeLogin(nAlternativeID),