Das Modul soll dazu dienen, einen User sofort nach Neuanmeldung freizuschalten.
Das Modul sollte dazu auf der Seite login/newmes aufgerufen werden. Ein User der sich frisch angemeldet hat, kann so direkt eingelogt und sogar je nach Eingaben auch Rechte zugewiesen werden.
Bitte beachten Sie die Kommentare im Quelltext.
var cms_Version : INTEGER := 1
var cms_ModuleVersion : INTEGER := 1
var cms_ShowModule : STRING := 'execmacro="NewUser Login"'
var cms_Functions_1 : STRING := ''
include ../sysmod/cms_sub.mod
procedure cmsMain(nLfdWEB:INTEGER;cSpacer,cSes,cURL,cParam:STRING):STRING
cms_nLfdWEB := nLfdWEB
cms_cSpacer := cSpacer
cms_cSes := cSes
cms_cURL := cURL
cms_cParam := cParam
////
Var db,nRec : Integer
Var cUsername,cPW : String
// Userdatensatz suchen
// Ist immer der Letzte
// Also Zugriff auf INR (Laufende_Nummer) und Lastrec
db:=cms_GetTable('usr_user')
Access(db,0)
nRec:=LastRec(db)
If nRec>0
ReadRec(db,nRec)
cUsername:=GetField(db,'Username')
cPW:=GetField(db,'PW')
// Hier können dem User gleich Rechte vergeben werden
// Dieses Beispiel ist für eine Pharama-Seite
// Es gibt dort die Rechtegruppen: Arzt, Apotheker, Presse
// Im Anmeldeforumlar hat der Anwender Checkboxen mit denen er versichert
// Arzt, Apotheker oder Fachjpurnalist (Presse) zu sein.
// Aufgrund dieser Versicherung, wird ihm sofort das Recht zugewiesen.
CopyMemo(db,'Rechte','ramtext:rechte')
// Rechte vergeben
If GetField(db,'Arzt')='JA'
SetIdent('ramtext:rechte','cms.Arzt','1')
cms_WriteText('Sie haben nun die Berechtigung für den Bereich Arzt.<br>')
End
If GetField(db,'Apotheker')='JA'
SetIdent('ramtext:rechte','cms.Apotheker','1')
cms_WriteText('Sie haben nun die Berechtigung für den Bereich Apotheke.<br>')
End
If GetField(db,'Presse')='JA'
SetIdent('ramtext:rechte','cms.Presse','1')
cms_WriteText('Sie haben nun die Berechtigung für den Bereich Fachpresse.<br>')
End
// Muss gesetzt werden, damit die rechte neu berechnet werden
SetRField(db,'Letzte_Aenderung_Datum',Today)
SetRField(db,'Letzte_Aenderung_Zeit',Now)
WriteRec(db,nRec)
// ReadMemo immer erst nach Speichern des Datensatzes
ReadMemo(db,'Rechte','ramtext:rechte')
// Einlogen des Users
Do _'ExecMacro(../../../system/userman,Login("'+cSes+'","'+cUsername+'","'+cPW+'","",""))'
Else
// User kann nicht gefunden werden -> interner Fehler
cms_WriteText('<br><br>Es ist ein schwerwiegender Fehler aufgetreten. Bitte informieren Sie den Server-Administrator.<br><br>')
End
////
Subst(cSpacer,'')
Return cSes
endproc
var cms_ModuleVersion : INTEGER := 1
var cms_ShowModule : STRING := 'execmacro="NewUser Login"'
var cms_Functions_1 : STRING := ''
include ../sysmod/cms_sub.mod
procedure cmsMain(nLfdWEB:INTEGER;cSpacer,cSes,cURL,cParam:STRING):STRING
cms_nLfdWEB := nLfdWEB
cms_cSpacer := cSpacer
cms_cSes := cSes
cms_cURL := cURL
cms_cParam := cParam
////
Var db,nRec : Integer
Var cUsername,cPW : String
// Userdatensatz suchen
// Ist immer der Letzte
// Also Zugriff auf INR (Laufende_Nummer) und Lastrec
db:=cms_GetTable('usr_user')
Access(db,0)
nRec:=LastRec(db)
If nRec>0
ReadRec(db,nRec)
cUsername:=GetField(db,'Username')
cPW:=GetField(db,'PW')
// Hier können dem User gleich Rechte vergeben werden
// Dieses Beispiel ist für eine Pharama-Seite
// Es gibt dort die Rechtegruppen: Arzt, Apotheker, Presse
// Im Anmeldeforumlar hat der Anwender Checkboxen mit denen er versichert
// Arzt, Apotheker oder Fachjpurnalist (Presse) zu sein.
// Aufgrund dieser Versicherung, wird ihm sofort das Recht zugewiesen.
CopyMemo(db,'Rechte','ramtext:rechte')
// Rechte vergeben
If GetField(db,'Arzt')='JA'
SetIdent('ramtext:rechte','cms.Arzt','1')
cms_WriteText('Sie haben nun die Berechtigung für den Bereich Arzt.<br>')
End
If GetField(db,'Apotheker')='JA'
SetIdent('ramtext:rechte','cms.Apotheker','1')
cms_WriteText('Sie haben nun die Berechtigung für den Bereich Apotheke.<br>')
End
If GetField(db,'Presse')='JA'
SetIdent('ramtext:rechte','cms.Presse','1')
cms_WriteText('Sie haben nun die Berechtigung für den Bereich Fachpresse.<br>')
End
// Muss gesetzt werden, damit die rechte neu berechnet werden
SetRField(db,'Letzte_Aenderung_Datum',Today)
SetRField(db,'Letzte_Aenderung_Zeit',Now)
WriteRec(db,nRec)
// ReadMemo immer erst nach Speichern des Datensatzes
ReadMemo(db,'Rechte','ramtext:rechte')
// Einlogen des Users
Do _'ExecMacro(../../../system/userman,Login("'+cSes+'","'+cUsername+'","'+cPW+'","",""))'
Else
// User kann nicht gefunden werden -> interner Fehler
cms_WriteText('<br><br>Es ist ein schwerwiegender Fehler aufgetreten. Bitte informieren Sie den Server-Administrator.<br><br>')
End
////
Subst(cSpacer,'')
Return cSes
endproc