Compare commits
4 Commits
3fcff3b9c8
...
a87acaacec
Author | SHA1 | Date | |
---|---|---|---|
|
a87acaacec | ||
|
82f1c57722 | ||
|
92e675b642 | ||
|
17825e7356 |
@ -233,7 +233,7 @@ dependencyCheck {
|
|||||||
failBuildOnCVSS = 5
|
failBuildOnCVSS = 5
|
||||||
}
|
}
|
||||||
project.tasks.check.dependsOn(dependencyCheckAnalyze)
|
project.tasks.check.dependsOn(dependencyCheckAnalyze)
|
||||||
project.tasks.dependencyCheckAnalyze.doFirst { // Why not doLast? See README.txt!
|
project.tasks.dependencyCheckAnalyze.doFirst { // Why not doLast? See README.md!
|
||||||
println "OWASP Dependency Security Report: file:///${project.rootDir}/build/reports/dependency-check-report.html"
|
println "OWASP Dependency Security Report: file:///${project.rootDir}/build/reports/dependency-check-report.html"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -268,7 +268,7 @@ jacocoTestReport {
|
|||||||
])
|
])
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
doFirst { // Why not doLast? See README.txt!
|
doFirst { // Why not doLast? See README.md!
|
||||||
println "HTML Jacoco Test Code Coverage Report: file://${reports.html.outputLocation.get()}/index.html"
|
println "HTML Jacoco Test Code Coverage Report: file://${reports.html.outputLocation.get()}/index.html"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -381,7 +381,7 @@ pitest {
|
|||||||
timestampedReports = false
|
timestampedReports = false
|
||||||
}
|
}
|
||||||
project.tasks.check.dependsOn(project.tasks.pitest)
|
project.tasks.check.dependsOn(project.tasks.pitest)
|
||||||
project.tasks.pitest.doFirst { // Why not doLast? See README.txt!
|
project.tasks.pitest.doFirst { // Why not doLast? See README.md!
|
||||||
println "PiTest Mutation Report: file:///${project.rootDir}/build/reports/pitest/index.html"
|
println "PiTest Mutation Report: file:///${project.rootDir}/build/reports/pitest/index.html"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,12 +26,6 @@ und zeitlich nacheinander mehrere [Mitgliedschaften](#Mitgliedschaft) geben.
|
|||||||
Partner sind grundsätzlich als ist [Relation](#Relation) der Vertragsperson mit der Person _Hostsharing eG_ implementiert.
|
Partner sind grundsätzlich als ist [Relation](#Relation) der Vertragsperson mit der Person _Hostsharing eG_ implementiert.
|
||||||
|
|
||||||
|
|
||||||
#### Ex-Partner
|
|
||||||
|
|
||||||
Ex-Partner bilden [Personen](#Person) ab, die vormals [Partner](#Partner) waren.
|
|
||||||
Diese bleiben dadurch dem System
|
|
||||||
|
|
||||||
|
|
||||||
### Debitor
|
### Debitor
|
||||||
|
|
||||||
Ein `Debitor` ist quasi ein Rechnungsempfänger für einen [Partner](#Partner).
|
Ein `Debitor` ist quasi ein Rechnungsempfänger für einen [Partner](#Partner).
|
||||||
@ -42,35 +36,75 @@ z.B. für spezielle Projekte des Kunden oder verbundene Organisationen.
|
|||||||
Des Weiteren gibt es für jeden _Partner_ eine fünfstellige Partnernummer mit dem Prefix 'P-' (z.B. `P-123454`)
|
Des Weiteren gibt es für jeden _Partner_ eine fünfstellige Partnernummer mit dem Prefix 'P-' (z.B. `P-123454`)
|
||||||
sowie Zusatzinformationen (z.B. Registergerichtsnummer oder Geburtsdatum), die zur genauen Identifikation benötigt werden.
|
sowie Zusatzinformationen (z.B. Registergerichtsnummer oder Geburtsdatum), die zur genauen Identifikation benötigt werden.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Debitoren sind grundsätzlich als ist [Relation](#Relation) der Vertragsperson mit der Person des Vertragspartners implementiert.
|
Debitoren sind grundsätzlich als ist [Relation](#Relation) der Vertragsperson mit der Person des Vertragspartners implementiert.
|
||||||
|
|
||||||
|
|
||||||
#### Representative (ehemals _contractual_)
|
#### Relation
|
||||||
|
|
||||||
Ein _Representative_ ist eine natürliche Person, die für eine nicht-natürliche Person vertretungsberechtigt ist.
|
Eine _Relation_ ist eine typisierte und mit Kontaktdaten versehene Beziehung einer (_Holder_)-Person zu einer _Anchor_-Person.
|
||||||
|
|
||||||
Implementiert ist der _Representative_ als eine besondere Form der [Relation](#Relation) des
|
Eine Relation ist eine Art Geschäftsrolle, wir haben hier aber keinen Begriff mit 'Rolle' verwendet,
|
||||||
|
|
||||||
|
|
||||||
'VIP_CONTACT',
|
|
||||||
'OPERATIONS',
|
|
||||||
'SUBSCRIBER');
|
|
||||||
|
|
||||||
|
|
||||||
#### Relation (so eine Art Geschäftsrolle)
|
|
||||||
|
|
||||||
Eine _Relation_ ist eine Beziehung
|
|
||||||
|
|
||||||
Wir haben hier keinen Begriff mit 'Rolle' verwendet,
|
|
||||||
weil 'Role' (engl.) zu leicht mit der [RBAC-Rolle](#RBAC-Role) verwechselt werden könnte.
|
weil 'Role' (engl.) zu leicht mit der [RBAC-Rolle](#RBAC-Role) verwechselt werden könnte.
|
||||||
|
|
||||||
Die _Relation_ ist auch ein technisches Konzept und gehört nicht zur Domänensprache.
|
Die _Relation_ ist auch ein technisches Konzept und gehört nicht zur Domänensprache.
|
||||||
Dieses Konzept ist jedoch für das Verständnis der ([API](#API)) notwendig.
|
Dieses Konzept ist jedoch für das Verständnis der ([API](#API)) notwendig.
|
||||||
|
|
||||||
#### Anker
|
|
||||||
|
#### Ex-Partner
|
||||||
|
|
||||||
|
Ex-Partner bilden [Personen](#Person) ab, die vormals [Partner](#Partner) waren.
|
||||||
|
Diese bleiben dadurch informationshalber im System verfügbar.
|
||||||
|
|
||||||
|
Implementiert ist der _Ex-Partner_ als eine besondere Form der [Relation](#Relation)
|
||||||
|
der Person des Ex-Partner (_Holder_) zum neuen Partner (_Anchor_) dargestellt.
|
||||||
|
Dieses kann zu einer Kettenbildung führen.
|
||||||
|
|
||||||
|
|
||||||
#### API (Application-Programming-Interface)
|
#### Representative-Contact (ehemals _contractual_)
|
||||||
|
|
||||||
|
Ein _Representative_ ist eine natürliche Person, die für eine nicht-natürliche Person vertretungsberechtigt ist.
|
||||||
|
|
||||||
|
Implementiert ist der _Representative_ als eine besondere Form der [Relation](#Relation)
|
||||||
|
der Person des Repräsentanten (_Holder_) zur repräsentierten Person (_Anchor_) dargestellt.
|
||||||
|
|
||||||
|
|
||||||
|
### VIP-Contact
|
||||||
|
|
||||||
|
Ein _VIP-Contact_ ist eine natürliche Person, die für einen Geschäftspartner eine wichtige Funktion übernimmt,
|
||||||
|
nicht aber deren offizieller Repräsentant ist.
|
||||||
|
|
||||||
|
Implementiert ist der _VIP-Contact_ als eine besondere Form der [Relation](#Relation)
|
||||||
|
der Person des VIP-Contact (_Holder_) zur repräsentierten Person (_Anchor_) dargestellt.
|
||||||
|
|
||||||
|
|
||||||
|
### Operations-Contact
|
||||||
|
|
||||||
|
Ein _Operations-_Contact_ ist_ eine natürliche Person, die für einen Geschäftspartner technischer Ansprechpartner ist
|
||||||
|
|
||||||
|
Implementiert ist der _Operations-Contact_ als eine besondere Form der [Relation](#Relation)
|
||||||
|
der Person des _Operations-Contact_ (_Holder_) zur repräsentierten Person (_Anchor_) dargestellt.
|
||||||
|
|
||||||
|
|
||||||
|
### Subscriber-Contact
|
||||||
|
|
||||||
|
Ein _Subscriber-_Contact_ ist_ eine natürliche Person, die für einen Geschäftspartner eine bestimmte Mailingliste abonniert.
|
||||||
|
|
||||||
|
Implementiert ist der _Subscriber-Contact_ als eine besondere Form der [Relation](#Relation)
|
||||||
|
der Person des _Subscriber-Contact_ (_Holder_) zur repräsentierten Person (_Anchor_) dargestellt.
|
||||||
|
Zusätzlich wird diese Relation mit dem Kurznamen der abonnierten Mailingliste markiert.
|
||||||
|
|
||||||
|
|
||||||
|
#### Anchor / Relation-Anchor
|
||||||
|
|
||||||
|
siehe [Relation](#Relation)
|
||||||
|
|
||||||
|
|
||||||
|
#### Holder / Relation-Holder
|
||||||
|
|
||||||
|
siehe [Relation](#Relation)
|
||||||
|
|
||||||
|
|
||||||
|
#### API
|
||||||
|
|
||||||
|
Und API (Application-Programming-Interface) verstehen wir eine über HTTPS angesprochene programmatisch bedienbare Schnittstell
|
||||||
|
zur Funktionalität des hsAdmin-NG-Systems.
|
||||||
|
@ -1 +1 @@
|
|||||||
move generated ScenarioReports to build-dir
|
find the generated ScenarioReports in build/doc/scenarios
|
||||||
|
@ -36,7 +36,7 @@ public class HsOfficeCoopAssetsTransactionController implements HsOfficeCoopAsse
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public ResponseEntity<List<HsOfficeCoopAssetsTransactionResource>> listCoopAssets(
|
public ResponseEntity<List<HsOfficeCoopAssetsTransactionResource>> getListOfCoopAssets(
|
||||||
final String currentSubject,
|
final String currentSubject,
|
||||||
final String assumedRoles,
|
final String assumedRoles,
|
||||||
final UUID membershipUuid,
|
final UUID membershipUuid,
|
||||||
@ -55,7 +55,7 @@ public class HsOfficeCoopAssetsTransactionController implements HsOfficeCoopAsse
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public ResponseEntity<HsOfficeCoopAssetsTransactionResource> addCoopAssetsTransaction(
|
public ResponseEntity<HsOfficeCoopAssetsTransactionResource> postNewCoopAssetTransaction(
|
||||||
final String currentSubject,
|
final String currentSubject,
|
||||||
final String assumedRoles,
|
final String assumedRoles,
|
||||||
final HsOfficeCoopAssetsTransactionInsertResource requestBody) {
|
final HsOfficeCoopAssetsTransactionInsertResource requestBody) {
|
||||||
@ -77,7 +77,7 @@ public class HsOfficeCoopAssetsTransactionController implements HsOfficeCoopAsse
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public ResponseEntity<HsOfficeCoopAssetsTransactionResource> getCoopAssetTransactionByUuid(
|
public ResponseEntity<HsOfficeCoopAssetsTransactionResource> geSingleCoopAssetTransactionByUuid(
|
||||||
final String currentSubject, final String assumedRoles, final UUID assetTransactionUuid) {
|
final String currentSubject, final String assumedRoles, final UUID assetTransactionUuid) {
|
||||||
|
|
||||||
context.define(currentSubject, assumedRoles);
|
context.define(currentSubject, assumedRoles);
|
||||||
|
@ -80,7 +80,7 @@ public class HsOfficeCoopSharesTransactionController implements HsOfficeCoopShar
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public ResponseEntity<HsOfficeCoopSharesTransactionResource> geSingletCoopShareTransactionByUuid(
|
public ResponseEntity<HsOfficeCoopSharesTransactionResource> geSingleCoopShareTransactionByUuid(
|
||||||
final String currentSubject, final String assumedRoles, final UUID shareTransactionUuid) {
|
final String currentSubject, final String assumedRoles, final UUID shareTransactionUuid) {
|
||||||
|
|
||||||
context.define(currentSubject, assumedRoles);
|
context.define(currentSubject, assumedRoles);
|
||||||
|
@ -2,7 +2,7 @@ get:
|
|||||||
tags:
|
tags:
|
||||||
- hs-office-coopAssets
|
- hs-office-coopAssets
|
||||||
description: 'Fetch a single asset transaction by its uuid, if visible for the current subject.'
|
description: 'Fetch a single asset transaction by its uuid, if visible for the current subject.'
|
||||||
operationId: getCoopAssetTransactionByUuid
|
operationId: geSingleCoopAssetTransactionByUuid
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: 'auth.yaml#/components/parameters/currentSubject'
|
- $ref: 'auth.yaml#/components/parameters/currentSubject'
|
||||||
- $ref: 'auth.yaml#/components/parameters/assumedRoles'
|
- $ref: 'auth.yaml#/components/parameters/assumedRoles'
|
||||||
|
@ -3,7 +3,7 @@ get:
|
|||||||
description: Returns the list of (optionally filtered) cooperative asset transactions which are visible to the current subject or any of it's assumed roles.
|
description: Returns the list of (optionally filtered) cooperative asset transactions which are visible to the current subject or any of it's assumed roles.
|
||||||
tags:
|
tags:
|
||||||
- hs-office-coopAssets
|
- hs-office-coopAssets
|
||||||
operationId: listCoopAssets
|
operationId: getListOfCoopAssets
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: 'auth.yaml#/components/parameters/currentSubject'
|
- $ref: 'auth.yaml#/components/parameters/currentSubject'
|
||||||
- $ref: 'auth.yaml#/components/parameters/assumedRoles'
|
- $ref: 'auth.yaml#/components/parameters/assumedRoles'
|
||||||
@ -46,7 +46,7 @@ post:
|
|||||||
summary: Adds a new cooperative asset transaction.
|
summary: Adds a new cooperative asset transaction.
|
||||||
tags:
|
tags:
|
||||||
- hs-office-coopAssets
|
- hs-office-coopAssets
|
||||||
operationId: addCoopAssetsTransaction
|
operationId: postNewCoopAssetTransaction
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: 'auth.yaml#/components/parameters/currentSubject'
|
- $ref: 'auth.yaml#/components/parameters/currentSubject'
|
||||||
- $ref: 'auth.yaml#/components/parameters/assumedRoles'
|
- $ref: 'auth.yaml#/components/parameters/assumedRoles'
|
||||||
|
@ -2,7 +2,7 @@ get:
|
|||||||
tags:
|
tags:
|
||||||
- hs-office-coopShares
|
- hs-office-coopShares
|
||||||
description: 'Fetch a single share transaction by its uuid, if visible for the current subject.'
|
description: 'Fetch a single share transaction by its uuid, if visible for the current subject.'
|
||||||
operationId: geSingletCoopShareTransactionByUuid
|
operationId: geSingleCoopShareTransactionByUuid
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: 'auth.yaml#/components/parameters/currentSubject'
|
- $ref: 'auth.yaml#/components/parameters/currentSubject'
|
||||||
- $ref: 'auth.yaml#/components/parameters/assumedRoles'
|
- $ref: 'auth.yaml#/components/parameters/assumedRoles'
|
||||||
|
@ -55,7 +55,7 @@ class HsOfficeCoopAssetsTransactionControllerAcceptanceTest extends ContextBased
|
|||||||
EntityManager em;
|
EntityManager em;
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
class ListCoopAssetsTransactions {
|
class GetListOfCoopAssetsTransactions {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void globalAdmin_canViewAllCoopAssetsTransactions() {
|
void globalAdmin_canViewAllCoopAssetsTransactions() {
|
||||||
@ -166,10 +166,10 @@ class HsOfficeCoopAssetsTransactionControllerAcceptanceTest extends ContextBased
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
class AddCoopAssetsTransaction {
|
class PostNewCoopAssetTransaction {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void globalAdmin_canAddCoopAssetsTransaction() {
|
void globalAdmin_canPostNewCoopAssetTransaction() {
|
||||||
|
|
||||||
context.define("superuser-alex@hostsharing.net");
|
context.define("superuser-alex@hostsharing.net");
|
||||||
final var givenMembership = membershipRepo.findMembershipByMemberNumber(1000101);
|
final var givenMembership = membershipRepo.findMembershipByMemberNumber(1000101);
|
||||||
|
Loading…
Reference in New Issue
Block a user