Beispielmodul NewUser

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



eforia® web manager Dokumentation
Stand V 3.01 / 20.12.2010
© Horst Klier
http://www.klier.net
Impressum