<?xml version="1.0" encoding="UTF-8" ?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods-v2.xsd">

    <!-- ============== Basic Permission Checking ============= -->

    <!-- Returns hasPermission=true if user has one of the base PARTYMGR CRUD+ADMIN permissions -->
    <simple-method method-name="basePermissionCheck" short-description="Party Manager base permission logic">
        <set field="primaryPermission" value="PARTYMGR"/>
        <call-simple-method method-name="genericBasePermissionCheck" xml-resource="component://common/script/org/ofbiz/common/permission/CommonPermissionServices.xml"/>
    </simple-method>

    <!-- Returns hasPermission=true if userLogin partyId equals partyId parameter -->
    <simple-method method-name="partyIdPermissionCheck" short-description="Party ID Permission Check">
        <if-empty field="partyId">
            <set field="partyId" from-field="parameters.partyId"/>
        </if-empty>
        <if>
            <condition>
                <and>
                    <not><if-empty field="partyId"/></not>
                    <not><if-empty field="userLogin.partyId"/></not>
                    <if-compare-field field="partyId" to-field="userLogin.partyId" operator="equals"/>
                </and>
            </condition>
            <then>
                <set field="hasPermission" type="Boolean" value="true"/>
            </then>
            <else>
                <set field="resourceDescription" from-field="parameters.resourceDescription"/>
                <if-empty field="resourceDescription">
                    <property-to-field resource="CommonUiLabels" property="CommonPermissionThisOperation" field="resourceDescription"/>
                </if-empty>
                <property-to-field resource="PartyUiLabels" property="PartyPermissionErrorPartyId" field="failMessage"/>
                <set field="hasPermission" type="Boolean" value="false"/>
                <field-to-result field="failMessage"/>
            </else>
        </if>
        <field-to-result field="hasPermission"/>
    </simple-method>

    <!-- Returns hasPermission=true if userLogin party equals partyId parameter OR
        user has one of the base PARTYMGR CRUD+ADMIN permissions -->
    <simple-method method-name="basePlusPartyIdPermissionCheck" short-description="Base Permission Plus Party ID Permission Check">
        <call-simple-method method-name="basePermissionCheck"/>
        <if-compare field="hasPermission" operator="not-equals" value="true">
            <call-simple-method method-name="partyIdPermissionCheck"/>
        </if-compare>
    </simple-method>

    <!-- ============== Additional Permission Checking ============= -->

    <!-- Returns hasPermission=true if userLogin partyId equals partyId parameter OR
         user has one of the base PARTYMGR or PARTYMGR_STS CRUD+ADMIN permissions -->
    <simple-method method-name="partyStatusPermissionCheck" short-description="Party status permission logic">
        <set field="hasPermission" type="Boolean" value="false"/>
        <if-not-empty field="parameters.partyId">
            <if-compare-field field="parameters.partyId" to-field="userLogin.partyId" operator="equals">
                <set field="hasPermission" type="Boolean" value="true"/>
                <field-to-result field="hasPermission"/>
            </if-compare-field>
        </if-not-empty>
        <if-compare field="hasPermission" operator="not-equals" value="true">
            <set field="altPermission" value="PARTYMGR_STS"/>
            <call-simple-method method-name="basePermissionCheck"/>
        </if-compare>
    </simple-method>

    <!-- Returns hasPermission=true if userLogin partyId equals partyId parameter OR
         user has one of the base PARTYMGR or PARTYMGR_GRP CRUD+ADMIN permissions -->
    <simple-method method-name="partyGroupPermissionCheck" short-description="Party group permission logic">
        <set field="altPermission" value="PARTYMGR_GRP"/>
        <call-simple-method method-name="basePlusPartyIdPermissionCheck"/>
    </simple-method>

    <!-- Returns hasPermission=true if user has one of the base PARTYMGR or PARTYMGR_SRC CRUD+ADMIN permissions -->
    <simple-method method-name="partyDatasourcePermissionCheck" short-description="Party datasource permission logic">
        <set field="altPermission" value="PARTYMGR_SRC"/>
        <call-simple-method method-name="basePermissionCheck"/>
    </simple-method>

    <!-- Returns hasPermission=true if user has one of the base PARTYMGR or PARTYMGR_ROLE CRUD+ADMIN permissions -->
    <simple-method method-name="partyRolePermissionCheck" short-description="Party role permission logic">
        <set field="altPermission" value="PARTYMGR_ROLE"/>
        <call-simple-method method-name="basePlusPartyIdPermissionCheck"/>
    </simple-method>

    <!-- Returns hasPermission=true if user has one of the base PARTYMGR or PARTYMGR_REL CRUD+ADMIN permissions -->
    <simple-method method-name="partyRelationshipPermissionCheck" short-description="Party relationship permission logic">
        <if-empty field="parameters.partyIdFrom">
            <set field="parameters.partyIdFrom" from-field="userLogin.partyId"/>
            <set field="hasPermission" type="Boolean" value="true"/>
            <field-to-result field="hasPermission"/>
            <else>
                <set field="altPermission" value="PARTYMGR_REL"/>
                <call-simple-method method-name="basePermissionCheck"/>
            </else>
        </if-empty>
    </simple-method>

    <!-- Returns hasPermission=true if userLogin partyId equals partyId parameter OR
         user has one of the base PARTYMGR or PARTYMGR_PCM CRUD+ADMIN permissions -->
    <simple-method method-name="partyContactMechPermissionCheck" short-description="Party contact mech permission logic">
        <if-empty field="parameters.partyId">
            <set field="parameters.partyId" from-field="userLogin.partyId"/>
        </if-empty>
        <if-compare-field to-field="userLogin.partyId" field="parameters.partyId" operator="equals">
            <set field="hasPermission" type="Boolean" value="true"/>
            <field-to-result field="hasPermission"/>

            <else>
                <set field="altPermission" value="PARTYMGR_PCM"/>
                <call-simple-method method-name="basePermissionCheck"/>
            </else>
        </if-compare-field>
    </simple-method>

    <!-- Accept/Decline/Cancel PartyInvitation Permission Checks -->
    <simple-method method-name="accAndDecPartyInvitationPermissionCheck" short-description="Accept and Decline PartyInvitation Permission Logic">
        <set field="hasPermission" type="Boolean" value="false"/>
        <if-has-permission permission="PARTYMGR_UPDATE" action="_UPDATE">
            <set field="hasPermission" type="Boolean" value="true"/>
            <field-to-result field="hasPermission"/>
        </if-has-permission>
        <if-compare field="hasPermission" operator="not-equals" value="true">
            <entity-one entity-name="PartyInvitation" value-field="partyInvitation"/>
            <if-empty field="partyInvitation.partyId">
                <if-empty field="partyInvitation.emailAddress">
                    <add-error>
                        <fail-property property="PartyInvitationNotValidError" resource="PartyUiLabels"/>
                    </add-error>
                <else>
                    <set field="findPartyCtx.address" from-field="partyInvitation.emailAddress"/>
                    <call-service service-name="findPartyFromEmailAddress" in-map-name="findPartyCtx">
                        <result-to-field result-name="partyId" field="partyId"/>
                    </call-service>
                    <if-not-empty field="partyId">
                        <if-compare-field field="partyId" to-field="userLogin.partyId" operator="equals">
                            <set field="hasPermission" type="Boolean" value="true"/>
                            <field-to-result field="hasPermission"/>
                        </if-compare-field>
                    <else>
                        <add-error>
                            <fail-property property="PartyInvitationNotValidError" resource="PartyUiLabels"/>
                        </add-error>
                    </else>
                    </if-not-empty>
                </else>
                </if-empty>
            <else>
                <if-compare-field field="partyInvitation.partyId" to-field="userLogin.partyId" operator="equals">
                    <set field="hasPermission" type="Boolean" value="true"/>
                    <field-to-result field="hasPermission"/>
                </if-compare-field>
            </else>
            </if-empty>
            <check-errors/>
        </if-compare>
        <if-compare field="hasPermission" operator="not-equals" value="true">
            <property-to-field property="PartyInvitationAccAndDecPermissionError" field="failMessage" resource="PartyUiLabels"/>
            <field-to-result field="hasPermission"/>
            <field-to-result field="failMessage"/>
        </if-compare>
    </simple-method>
    <simple-method method-name="cancelPartyInvitationPermissionCheck" short-description="Cancel PartyInvitation Permission Logic">
        <set field="hasPermission" type="Boolean" value="false"/>
        <if-has-permission permission="PARTYMGR_UPDATE" action="_UPDATE">
            <set field="hasPermission" type="Boolean" value="true"/>
            <field-to-result field="hasPermission"/>
        </if-has-permission>
        <if-compare field="hasPermission" operator="not-equals" value="true">
            <entity-one entity-name="PartyInvitation" value-field="partyInvitation"/>
            <if-not-empty field="partyInvitation.partyIdFrom">
                <if-compare-field field="partyInvitation.partyIdFrom" to-field="userLogin.partyId" operator="equals">
                    <set field="hasPermission" type="Boolean" value="true"/>
                    <field-to-result field="hasPermission"/>
                </if-compare-field>
            </if-not-empty>
            <if-compare field="hasPermission" operator="not-equals" value="true">
                <if-empty field="partyInvitation.partyId">
                    <if-empty field="partyInvitation.emailAddress">
                        <add-error>
                            <fail-property property="PartyInvitationNotValidError" resource="PartyUiLabels"/>
                        </add-error>
                    <else>
                        <set field="findPartyCtx.address" from-field="partyInvitation.emailAddress"/>
                        <call-service service-name="findPartyFromEmailAddress" in-map-name="findPartyCtx">
                            <result-to-field result-name="partyId" field="partyId"/>
                        </call-service>
                        <if-not-empty field="partyId">
                            <if-compare-field field="partyId" to-field="userLogin.partyId" operator="equals">
                                <set field="hasPermission" type="Boolean" value="true"/>
                                <field-to-result field="hasPermission"/>
                            </if-compare-field>
                        <else>
                            <add-error>
                                <fail-property property="PartyInvitationNotValidError" resource="PartyUiLabels"/>
                            </add-error>
                        </else>
                        </if-not-empty>
                    </else>
                    </if-empty>
                <else>
                    <if-compare-field field="partyInvitation.partyId" to-field="userLogin.partyId" operator="equals">
                        <set field="hasPermission" type="Boolean" value="true"/>
                        <field-to-result field="hasPermission"/>
                    </if-compare-field>
                </else>
                </if-empty>
                <check-errors/>
            </if-compare>
        </if-compare>
        <if-compare field="hasPermission" operator="not-equals" value="true">
            <property-to-field property="PartyInvitationCancelPermissionError" field="failMessage" resource="PartyUiLabels"/>
            <field-to-result field="hasPermission"/>
            <field-to-result field="failMessage"/>
        </if-compare>
    </simple-method>

    <!-- Returns hasPermission=true if userLogin partyId equals partyIdFrom parameter OR
         partyIdTo parameter OR user has one of the base PARTYMGR or PARTYMGR_CME CRUD+ADMIN permissions -->
    <simple-method method-name="partyCommunicationEventPermissionCheck" short-description="Communication Event permission logic">
        <if>
            <condition>
                <and>
                    <if-compare operator="equals" value="EMAIL_COMMUNICATION" field="parameters.communicationEventTypeId"/>
                    <if-compare operator="equals" value="CREATE" field="action"/>
                </and>
            </condition>
            <then>
                <set field="altPermission" value="PARTYMGR_CME-EMAIL"/>
                <call-simple-method method-name="basePermissionCheck"/>
            </then>
            <else-if>
                <condition>
                    <and>
                        <if-compare operator="equals" value="COMMENT_NOTE" field="parameters.communicationEventTypeId"/>
                        <if-compare operator="equals" value="CREATE" field="action"/>
                    </and>
                </condition>
                <then>
                    <set field="altPermission" value="PARTYMGR_CME-NOTE"/>
                    <call-simple-method method-name="basePermissionCheck"/>
                </then>
            </else-if>
            <else-if>
                <condition>
                    <and>
                        <if-compare-field field="parameters.partyIdFrom" to-field="userLogin.partyId" operator="not-equals"/>
                        <if-compare-field field="parameters.partyIdTo" to-field="userLogin.partyId" operator="not-equals"/>
                        <if-compare-field field="parameters.partyId" to-field="userLogin.partyId" operator="not-equals"/><!-- update role -->
                    </and>
                </condition>
                <then>
                    <set field="altPermission" value="PARTYMGR_CME"/>
                    <call-simple-method method-name="basePermissionCheck"/>
                </then>
            </else-if>
            <else>
                <set field="hasPermission" type="Boolean" value="true"/>
                <field-to-result field="hasPermission"/>
            </else>
        </if>
    </simple-method>
</simple-methods>
