United Planet GmbH

Das Groovy g_om-Objekt in Intrexx 5.2

Inhalt

Einleitung

Mit Erscheinen der Version 5.2 bietet Intrexx eine Vielzahl an erweiterten Möglichkeiten der prozessgesteuerten Benutzerverwaltung. Durch neue Zugriffsobjekte und –methoden innerhalb von Groovy-Aktionen können u.a. neue Benutzer angelegt und verwaltet werden.

Als Einstiegspunkt zum Arbeiten auf der Organisationsstruktur eines Portals innerhalb von Prozessen dient das global verfügbare und bereits initialisierte Objekt g_om (JavaDoc Link). Hiermit lassen sich bereits grundlegende UseCases umsetzen wie das Suchen eines Benutzers oder das Generieren eines neuen Passworts. Diese Methoden sind wie "normale" Methodenaufrufe zu verwenden.

Beispiele

  • // Generieren und Versenden eines neuen Passworts an den übergebenen Benutzer.
    g_om.generateAndSendPassword(g_session.user)
  • // Suchen eines Benutzers anhand einer GUID.
    def user = g_om.getUser("C10579449052F85D9C3FF3C2824348FCE020A22E")
  • // Klassifizieren einer Liste von GUIDs. Übergeben werden kann eine Liste mit GUIDs
    // oder ein Text (z.B. Inhalt eines Datenfelds einer Mehrfachauswahl).
    def guids = ["AE39A904172F5867DA23DE289D1D6B7967420DC0", 
                 "6AA80844C3C99EF93BF4536EB18605BF86FDD3C5",
                 g_session.user.guid]
    			 
    def classified = g_om.classifyGuids(guids) //guids = Collection oder String
    
    //Ergebnis ist eine Map mit den kategorisierten GUIDs.
    //z.B. {containers=[], users=[7312F993D0DA4CECCA9AE5A9D865BE142DE413EA], 
    //      unclassified=[AE39A904172F5867DA23DE289D1D6B7967420DC0], 
    //      sets=[6AA80844C3C99EF93BF4536EB18605BF86FDD3C5]}
    println(classified)
    
    //Weitere Filterung auf bestimmte Objektarten
    println(classified.users)
    println(classified.containers)
    println(classified.sets)
    println(classified.unclassified)
    
  • //Liefert die Anzahl aller nicht-anonymen Session.
    g_om.getNonAnonymousActiveSessionCount()

g_om und Closures

Darüber hinaus verfügt das Objekt g_om noch über einige Methoden, die in Verbindung mit einer Closure aufgerufen werden, um weiterführende Aktionen zu realisieren. Zu erkennen sind diese Methoden an dem in den JavaDocs angegebenem Parameter vom Typ groovy.lang.Closure, z.B. GroovyOrgBuilder.createUser(groovy.lang.Closure p_closure). Innerhalb solch einer Closure können Methoden jener Klasse aufgerufen werden, die in den jeweiligen hinterlegten Links dokumentiert sind.

Folgende Methoden sind mit einer Closure aufrufbar:

g_om.createUser(groovy.lang.Closure p_closure)

Hiermit kann ein neuer Intrexx-Benutzer angelegt werden. Dabei können innerhalb der Closure die folgend aufgelisteten Properties gesetzt werden, wobei die Properties name und loginName erforderlich, die restlichen optional sind.

  • PropertyDatatypePropertyDatatype
    birthdayDateloginDomainLwrString
    loginNameString
    cityStringloginNameLwrString
    containerObjectmaleboolean
    countryStringmemberOfCollection<?>
    defaultLanguageStringmiddleNameString
    defaultLayoutStringnameString
    deletablebooleanpasswordString
    deletedbooleanpasswordChangedDateDate
    descriptionStringpasswordExpiresboolean
    disabledbooleanpasswordHashString
    dnStringphoneBizString
    emailBizStringphoneFaxString
    emailHomeStringphoneHomeString
    employeeNoStringphoneMobileBizString
    enterDateDatephoneMobileHomeString
    externalLogin1StringphonePagerString
    externalLogin2StringpoBoxString
    externalLogin3StringpostalCodeString
    externalPassword1Stringpriorityint
    externalPassword2String
    externalPassword3StringrplGuidString
    externalPrimaryGroupIdintsaltString
    femalebooleanshowUserboolean
    firstNameStringstateString
    fullNameStringstreetString
    genderinttimeZoneTimeZone
    guidStringtitleString
    idintuserImageContentTypeString
    internalUsnintuserImageFileFile
    lastNameStringuserImageMetaInfoString
    loginDomainString
  • Bei den Properties container und memberOf können wahlweise die GUIDs oder die eindeutigen Namen der Container, Rollen, Sets oder Gruppen angegeben werden.
  • Beispiel:
    g_om.createUser{
    	name      = "g_om"
    	loginName = "g_om"
    	birthday  = now()
    	container = "0F8233A39555B28F6B32CFFE666A5151E1F41AD3"
    	memberOf = ["8FBF199EE826D16742F0F131E0AB4CF0E6BA6CA3", "Benutzer"]
    	emailBiz  = "g_om@example.org"
    	guid      = newGuid()
    	male      = true
    }

g_om.getLoggedOnUsers(boolean p_bIncludeAnonymous, groovy.lang.Closure p_closure)

Gibt alle aktuell eingeloggten Benutzer aus. Über p_bIncludeAnonymous kann angegeben werden, ob anonyme Sessions in das Ergebnis mitaufgenommen werden sollen. Über die Groovy-Closure können weitere Filterungen vorgenommen werden.

  • Beispiel:
    def userOnline = g_om.getLoggedOnUsers(false){
    	it.containerGuid == "9DABA9EE4F9F6F771704F75C79A1C3A124FF399C"
    }

g_om.getLoggedOnUsersDistinct(groovy.lang.Closure p_closure)

Gibt alle aktuell eingeloggten, nicht-anonymen Benutzer ohne doppelte Vorkommen aus. Über die Groovy-Closure können analog zu g_om.getLoggedOnUsers(boolean p_bIncludeAnonymous, groovy.lang.Closure p_closure) weitere Filterungen vorgenommen werden.


g_om.withOrgStructure(groovy.lang.Closure p_closure) 

Erlaubt das Arbeiten auf der Organisationsstruktur eines Portals.

  • Beispiel:
    g_om.withOrgStructure{
    	println("9DABA9EE4F9F6F771704F75C79A1C3A124FF399C".isUser())
    }
    
  • Folgende Methoden sind innerhalb der OrgStructure-Closure aufrufbar:
  • isUser()
    isSet()
    isGroup()
    isDistList()
    isContainer()
    isOrganization()
    isOrgUnit()