1
0
hs.hsadmin.ng/src/main/resources/db/changelog/273-hs-office-debitor-rbac.md
Michael Hoennig d3ca2b7e23 move Parter+Debitor person+contact to related Relationsship (#20)
Co-authored-by: Michael Hoennig <michael@hoennig.de>
Reviewed-on: https://dev.hostsharing.net/hostsharing/hs.hsadmin.ng/pulls/20
Reviewed-by: Timotheus Pokorra <timotheus.pokorra@hostsharing.net>
2024-03-28 12:15:13 +01:00

11 KiB

rbac debitor

This code generated was by RbacViewMermaidFlowchartGenerator, do not amend manually.

%%{init:{'flowchart':{'htmlLabels':false}}}%%
flowchart TB

subgraph debitorRel.anchorPerson["`**debitorRel.anchorPerson**`"]
    direction TB
    style debitorRel.anchorPerson fill:#99bcdb,stroke:#274d6e,stroke-width:8px

    subgraph debitorRel.anchorPerson:roles[ ]
        style debitorRel.anchorPerson:roles fill:#99bcdb,stroke:white

        role:debitorRel.anchorPerson:owner[[debitorRel.anchorPerson:owner]]
        role:debitorRel.anchorPerson:admin[[debitorRel.anchorPerson:admin]]
        role:debitorRel.anchorPerson:referrer[[debitorRel.anchorPerson:referrer]]
    end
end

subgraph debitorRel.holderPerson["`**debitorRel.holderPerson**`"]
    direction TB
    style debitorRel.holderPerson fill:#99bcdb,stroke:#274d6e,stroke-width:8px

    subgraph debitorRel.holderPerson:roles[ ]
        style debitorRel.holderPerson:roles fill:#99bcdb,stroke:white

        role:debitorRel.holderPerson:owner[[debitorRel.holderPerson:owner]]
        role:debitorRel.holderPerson:admin[[debitorRel.holderPerson:admin]]
        role:debitorRel.holderPerson:referrer[[debitorRel.holderPerson:referrer]]
    end
end

subgraph partnerRel.holderPerson["`**partnerRel.holderPerson**`"]
    direction TB
    style partnerRel.holderPerson fill:#99bcdb,stroke:#274d6e,stroke-width:8px

    subgraph partnerRel.holderPerson:roles[ ]
        style partnerRel.holderPerson:roles fill:#99bcdb,stroke:white

        role:partnerRel.holderPerson:owner[[partnerRel.holderPerson:owner]]
        role:partnerRel.holderPerson:admin[[partnerRel.holderPerson:admin]]
        role:partnerRel.holderPerson:referrer[[partnerRel.holderPerson:referrer]]
    end
end

subgraph debitor["`**debitor**`"]
    direction TB
    style debitor fill:#dd4901,stroke:#274d6e,stroke-width:8px

    subgraph debitor:permissions[ ]
        style debitor:permissions fill:#dd4901,stroke:white

        perm:debitor:INSERT{{debitor:INSERT}}
        perm:debitor:DELETE{{debitor:DELETE}}
        perm:debitor:UPDATE{{debitor:UPDATE}}
        perm:debitor:SELECT{{debitor:SELECT}}
    end

    subgraph debitorRel["`**debitorRel**`"]
        direction TB
        style debitorRel fill:#99bcdb,stroke:#274d6e,stroke-width:8px
        subgraph debitorRel.anchorPerson["`**debitorRel.anchorPerson**`"]
            direction TB
            style debitorRel.anchorPerson fill:#99bcdb,stroke:#274d6e,stroke-width:8px

            subgraph debitorRel.anchorPerson:roles[ ]
                style debitorRel.anchorPerson:roles fill:#99bcdb,stroke:white

                role:debitorRel.anchorPerson:owner[[debitorRel.anchorPerson:owner]]
                role:debitorRel.anchorPerson:admin[[debitorRel.anchorPerson:admin]]
                role:debitorRel.anchorPerson:referrer[[debitorRel.anchorPerson:referrer]]
            end
        end

        subgraph debitorRel.holderPerson["`**debitorRel.holderPerson**`"]
            direction TB
            style debitorRel.holderPerson fill:#99bcdb,stroke:#274d6e,stroke-width:8px

            subgraph debitorRel.holderPerson:roles[ ]
                style debitorRel.holderPerson:roles fill:#99bcdb,stroke:white

                role:debitorRel.holderPerson:owner[[debitorRel.holderPerson:owner]]
                role:debitorRel.holderPerson:admin[[debitorRel.holderPerson:admin]]
                role:debitorRel.holderPerson:referrer[[debitorRel.holderPerson:referrer]]
            end
        end

        subgraph debitorRel.contact["`**debitorRel.contact**`"]
            direction TB
            style debitorRel.contact fill:#99bcdb,stroke:#274d6e,stroke-width:8px

            subgraph debitorRel.contact:roles[ ]
                style debitorRel.contact:roles fill:#99bcdb,stroke:white

                role:debitorRel.contact:owner[[debitorRel.contact:owner]]
                role:debitorRel.contact:admin[[debitorRel.contact:admin]]
                role:debitorRel.contact:referrer[[debitorRel.contact:referrer]]
            end
        end

        subgraph debitorRel:roles[ ]
            style debitorRel:roles fill:#99bcdb,stroke:white

            role:debitorRel:owner[[debitorRel:owner]]
            role:debitorRel:admin[[debitorRel:admin]]
            role:debitorRel:agent[[debitorRel:agent]]
            role:debitorRel:tenant[[debitorRel:tenant]]
        end
    end
end

subgraph partnerRel["`**partnerRel**`"]
    direction TB
    style partnerRel fill:#99bcdb,stroke:#274d6e,stroke-width:8px

    subgraph partnerRel.holderPerson["`**partnerRel.holderPerson**`"]
        direction TB
        style partnerRel.holderPerson fill:#99bcdb,stroke:#274d6e,stroke-width:8px

        subgraph partnerRel.holderPerson:roles[ ]
            style partnerRel.holderPerson:roles fill:#99bcdb,stroke:white

            role:partnerRel.holderPerson:owner[[partnerRel.holderPerson:owner]]
            role:partnerRel.holderPerson:admin[[partnerRel.holderPerson:admin]]
            role:partnerRel.holderPerson:referrer[[partnerRel.holderPerson:referrer]]
        end
    end

    subgraph partnerRel.contact["`**partnerRel.contact**`"]
        direction TB
        style partnerRel.contact fill:#99bcdb,stroke:#274d6e,stroke-width:8px

        subgraph partnerRel.contact:roles[ ]
            style partnerRel.contact:roles fill:#99bcdb,stroke:white

            role:partnerRel.contact:owner[[partnerRel.contact:owner]]
            role:partnerRel.contact:admin[[partnerRel.contact:admin]]
            role:partnerRel.contact:referrer[[partnerRel.contact:referrer]]
        end
    end

    subgraph partnerRel.anchorPerson["`**partnerRel.anchorPerson**`"]
        direction TB
        style partnerRel.anchorPerson fill:#99bcdb,stroke:#274d6e,stroke-width:8px

        subgraph partnerRel.anchorPerson:roles[ ]
            style partnerRel.anchorPerson:roles fill:#99bcdb,stroke:white

            role:partnerRel.anchorPerson:owner[[partnerRel.anchorPerson:owner]]
            role:partnerRel.anchorPerson:admin[[partnerRel.anchorPerson:admin]]
            role:partnerRel.anchorPerson:referrer[[partnerRel.anchorPerson:referrer]]
        end
    end

    subgraph partnerRel:roles[ ]
        style partnerRel:roles fill:#99bcdb,stroke:white

        role:partnerRel:owner[[partnerRel:owner]]
        role:partnerRel:admin[[partnerRel:admin]]
        role:partnerRel:agent[[partnerRel:agent]]
        role:partnerRel:tenant[[partnerRel:tenant]]
    end
end

subgraph partnerRel.contact["`**partnerRel.contact**`"]
    direction TB
    style partnerRel.contact fill:#99bcdb,stroke:#274d6e,stroke-width:8px

    subgraph partnerRel.contact:roles[ ]
        style partnerRel.contact:roles fill:#99bcdb,stroke:white

        role:partnerRel.contact:owner[[partnerRel.contact:owner]]
        role:partnerRel.contact:admin[[partnerRel.contact:admin]]
        role:partnerRel.contact:referrer[[partnerRel.contact:referrer]]
    end
end

subgraph debitorRel.contact["`**debitorRel.contact**`"]
    direction TB
    style debitorRel.contact fill:#99bcdb,stroke:#274d6e,stroke-width:8px

    subgraph debitorRel.contact:roles[ ]
        style debitorRel.contact:roles fill:#99bcdb,stroke:white

        role:debitorRel.contact:owner[[debitorRel.contact:owner]]
        role:debitorRel.contact:admin[[debitorRel.contact:admin]]
        role:debitorRel.contact:referrer[[debitorRel.contact:referrer]]
    end
end

subgraph partnerRel.anchorPerson["`**partnerRel.anchorPerson**`"]
    direction TB
    style partnerRel.anchorPerson fill:#99bcdb,stroke:#274d6e,stroke-width:8px

    subgraph partnerRel.anchorPerson:roles[ ]
        style partnerRel.anchorPerson:roles fill:#99bcdb,stroke:white

        role:partnerRel.anchorPerson:owner[[partnerRel.anchorPerson:owner]]
        role:partnerRel.anchorPerson:admin[[partnerRel.anchorPerson:admin]]
        role:partnerRel.anchorPerson:referrer[[partnerRel.anchorPerson:referrer]]
    end
end

subgraph refundBankAccount["`**refundBankAccount**`"]
    direction TB
    style refundBankAccount fill:#99bcdb,stroke:#274d6e,stroke-width:8px

    subgraph refundBankAccount:roles[ ]
        style refundBankAccount:roles fill:#99bcdb,stroke:white

        role:refundBankAccount:owner[[refundBankAccount:owner]]
        role:refundBankAccount:admin[[refundBankAccount:admin]]
        role:refundBankAccount:referrer[[refundBankAccount:referrer]]
    end
end

%% granting roles to roles
role:global:admin -.-> role:debitorRel.anchorPerson:owner
role:debitorRel.anchorPerson:owner -.-> role:debitorRel.anchorPerson:admin
role:debitorRel.anchorPerson:admin -.-> role:debitorRel.anchorPerson:referrer
role:global:admin -.-> role:debitorRel.holderPerson:owner
role:debitorRel.holderPerson:owner -.-> role:debitorRel.holderPerson:admin
role:debitorRel.holderPerson:admin -.-> role:debitorRel.holderPerson:referrer
role:global:admin -.-> role:debitorRel.contact:owner
role:debitorRel.contact:owner -.-> role:debitorRel.contact:admin
role:debitorRel.contact:admin -.-> role:debitorRel.contact:referrer
role:global:admin -.-> role:debitorRel:owner
role:debitorRel:owner -.-> role:debitorRel:admin
role:debitorRel.anchorPerson:admin -.-> role:debitorRel:admin
role:debitorRel:admin -.-> role:debitorRel:agent
role:debitorRel.holderPerson:admin -.-> role:debitorRel:agent
role:debitorRel:agent -.-> role:debitorRel:tenant
role:debitorRel.holderPerson:admin -.-> role:debitorRel:tenant
role:debitorRel.contact:admin -.-> role:debitorRel:tenant
role:debitorRel:tenant -.-> role:debitorRel.anchorPerson:referrer
role:debitorRel:tenant -.-> role:debitorRel.holderPerson:referrer
role:debitorRel:tenant -.-> role:debitorRel.contact:referrer
role:global:admin -.-> role:refundBankAccount:owner
role:refundBankAccount:owner -.-> role:refundBankAccount:admin
role:refundBankAccount:admin -.-> role:refundBankAccount:referrer
role:refundBankAccount:admin ==> role:debitorRel:agent
role:debitorRel:agent ==> role:refundBankAccount:referrer
role:global:admin -.-> role:partnerRel.anchorPerson:owner
role:partnerRel.anchorPerson:owner -.-> role:partnerRel.anchorPerson:admin
role:partnerRel.anchorPerson:admin -.-> role:partnerRel.anchorPerson:referrer
role:global:admin -.-> role:partnerRel.holderPerson:owner
role:partnerRel.holderPerson:owner -.-> role:partnerRel.holderPerson:admin
role:partnerRel.holderPerson:admin -.-> role:partnerRel.holderPerson:referrer
role:global:admin -.-> role:partnerRel.contact:owner
role:partnerRel.contact:owner -.-> role:partnerRel.contact:admin
role:partnerRel.contact:admin -.-> role:partnerRel.contact:referrer
role:global:admin -.-> role:partnerRel:owner
role:partnerRel:owner -.-> role:partnerRel:admin
role:partnerRel.anchorPerson:admin -.-> role:partnerRel:admin
role:partnerRel:admin -.-> role:partnerRel:agent
role:partnerRel.holderPerson:admin -.-> role:partnerRel:agent
role:partnerRel:agent -.-> role:partnerRel:tenant
role:partnerRel.holderPerson:admin -.-> role:partnerRel:tenant
role:partnerRel.contact:admin -.-> role:partnerRel:tenant
role:partnerRel:tenant -.-> role:partnerRel.anchorPerson:referrer
role:partnerRel:tenant -.-> role:partnerRel.holderPerson:referrer
role:partnerRel:tenant -.-> role:partnerRel.contact:referrer
role:partnerRel:admin ==> role:debitorRel:admin
role:partnerRel:agent ==> role:debitorRel:agent
role:debitorRel:agent ==> role:partnerRel:tenant

%% granting permissions to roles
role:global:admin ==> perm:debitor:INSERT
role:debitorRel:owner ==> perm:debitor:DELETE
role:debitorRel:admin ==> perm:debitor:UPDATE
role:debitorRel:tenant ==> perm:debitor:SELECT