<?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">

    <simple-method method-name="portalPermissionIsEmployee" short-description="check permission for Employee">
        <set field="hasPermission" value="true" type="Boolean"/>
        <set field="hasNoPermission" value="false" type="Boolean"/>

        <if-has-permission permission="MYPORTAL_EMPLOYEE">
            <field-to-result field="hasPermission"/>
            <return/>
            <else>
                <field-to-result field="hasNoPermission" result-name="hasPermission"/>
                <return/>
            </else>
        </if-has-permission>
    </simple-method>

    <simple-method method-name="portalPermissionIsCustomer" short-description="check permission for customer">
        <set field="hasPermission" value="true" type="Boolean"/>
        <set field="hasNoPermission" value="false" type="Boolean"/>

        <if-has-permission permission="MYPORTAL_CUSTOMER">
            <field-to-result field="hasPermission"/>
            <return/>
            <else>
                <field-to-result field="hasNoPermission" result-name="hasPermission"/>
                <return/>
            </else>
        </if-has-permission>
    </simple-method>

</simple-methods>
