Kommentare angepasst
This commit is contained in:
85
_Vorlagen/Groovy-Skripte/Beispiel für Dokumentklasse.groovy
Normal file
85
_Vorlagen/Groovy-Skripte/Beispiel für Dokumentklasse.groovy
Normal file
@@ -0,0 +1,85 @@
|
||||
import com.dvelop.d3.server.Document
|
||||
import com.dvelop.d3.server.DocumentClass
|
||||
import com.dvelop.d3.server.DocumentType
|
||||
import com.dvelop.d3.server.RepositoryField
|
||||
import com.dvelop.d3.server.User
|
||||
import com.dvelop.d3.server.UserGroup
|
||||
import com.dvelop.d3.server.ValueSet
|
||||
import com.dvelop.d3.server.core.D3Interface
|
||||
|
||||
class ValueSets {
|
||||
|
||||
@ValueSet(entrypoint = "AllowedVendorNumbers")
|
||||
def allowedVendorNumbers(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer rowNo, Integer validate, Document attribContext) {
|
||||
d3.log.warn("allowedVendorNumbers ValueSet reached")
|
||||
def credNumbers = new LinkedList<String>()
|
||||
|
||||
// Gruppenberechtigungen aus DB lesen
|
||||
def groups = user.groups
|
||||
|
||||
// Alle erlaubten Kreditorennummern hinzufügen
|
||||
for (UserGroup group in groups) {
|
||||
def groupResult = d3.sql.executeAndGet("SELECT KREDNR FROM STU_KREDITOREN_BERECHTIGUNGEN WHERE USERORGROUP = '${group.id()}'")
|
||||
groupResult.forEach({ row ->
|
||||
def value = row.get("KREDNR").toString()
|
||||
if (!credNumbers.contains(value)) {
|
||||
credNumbers.add(value)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Userberechtigungen aus DB lesen
|
||||
def userResult = d3.sql.executeAndGet("SELECT KREDNR FROM STU_KREDITOREN_BERECHTIGUNGEN WHERE USERORGROUP = '${user.id()}'")
|
||||
userResult.forEach({ row ->
|
||||
def value = row.get("KREDNR").toString()
|
||||
if (!credNumbers.contains(value)) {
|
||||
credNumbers.add(value)
|
||||
}
|
||||
})
|
||||
|
||||
// Ergebnis zurückgeben
|
||||
repoField.provideValuesForValueSet(credNumbers)
|
||||
}
|
||||
|
||||
// Rückgabe von 1 = Berechtigt, 0 = Zugriff verweigert
|
||||
@DocumentClass(entrypoint = "vendorNumberAllowed")
|
||||
int vendorNumberIsAllowed(D3Interface d3, String value, DocumentType docType, String userId, Document doc){
|
||||
if (userId == null || userId == "") {
|
||||
return 0
|
||||
}
|
||||
|
||||
if (value == null || value == "") {
|
||||
return 0
|
||||
}
|
||||
|
||||
// Prüfe ob Kreditorennummer in User-Berechtigungen vorkommt, wenn ja Berechtigen (1)
|
||||
def userResult = d3.sql.executeAndGet("SELECT KREDNR FROM STU_KREDITOREN_BERECHTIGUNGEN WHERE USERORGROUP = '${userId}'")
|
||||
for (def row in userResult) {
|
||||
d3.log.debug("current value: $value")
|
||||
d3.log.debug("current row value: ${row.get("KREDNR").toString()}")
|
||||
if (value == row.get("KREDNR").toString()) {
|
||||
d3.log.debug("returning 1 for user")
|
||||
return 1
|
||||
}
|
||||
}
|
||||
|
||||
// Gruppenzugehörigkeiten aus d.3 lesen
|
||||
def groups = d3.archive.getUser(userId).groups
|
||||
|
||||
// Prüfe ob Kreditorennummer in Gruppen-Berechtigungen vorkommt, wenn ja Berechtigen (1)
|
||||
for (UserGroup group in groups) {
|
||||
def groupResult = d3.sql.executeAndGet("SELECT KREDNR FROM STU_KREDITOREN_BERECHTIGUNGEN WHERE USERORGROUP = '${group.id()}'")
|
||||
for (def row in groupResult) {
|
||||
d3.log.debug("current value: $value")
|
||||
d3.log.debug("current row value: ${row.get("KREDNR").toString()}")
|
||||
if (value.equalsIgnoreCase(row.get("KREDNR").toString().trim())) {
|
||||
d3.log.debug("returning 1 for group ${group.id()}")
|
||||
return 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Keine Berechtigung für Kreditorennummer gefunden, als nicht berechtigt zurückgeben
|
||||
return 0
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user