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

<entity-engine-xml>
    <!-- Common Services security -->
    <SecurityPermission description="View operations in the Common Component." permissionId="COMMON_VIEW"/>
    <SecurityPermission description="Admin operations in the Common Component." permissionId="COMMON_ADMIN"/>
    <SecurityPermission description="Create operations in the Common Component." permissionId="COMMON_CREATE"/>
    <SecurityPermission description="Update operations in the Common Component." permissionId="COMMON_UPDATE"/>
    <SecurityPermission description="Delete operations in the Common Component." permissionId="COMMON_DELETE"/>
    <SecurityPermission description="Create Visual Themes and Visual Theme Resources." permissionId="VISUALTHEME_CREATE"/>
    <SecurityPermission description="Update Visual Themes and Visual Theme Resources." permissionId="VISUALTHEME_UPDATE"/>
    <SecurityPermission description="Delete Visual Themes and Visual Theme Resources." permissionId="VISUALTHEME_DELETE"/>
    <SecurityPermission description="ALL operations on Visual Themes and Visual Theme Resources." permissionId="VISUALTHEME_ADMIN"/>

    <SecurityGroupPermission groupId="FLEXADMIN" permissionId="COMMON_CREATE"/>
    <SecurityGroupPermission groupId="FLEXADMIN" permissionId="COMMON_DELETE"/>
    <SecurityGroupPermission groupId="FLEXADMIN" permissionId="COMMON_UPDATE"/>
    <SecurityGroupPermission groupId="FLEXADMIN" permissionId="COMMON_VIEW"/>
    <SecurityGroupPermission groupId="FLEXADMIN" permissionId="VISUALTHEME_CREATE"/>
    <SecurityGroupPermission groupId="FLEXADMIN" permissionId="VISUALTHEME_UPDATE"/>
    <SecurityGroupPermission groupId="FLEXADMIN" permissionId="VISUALTHEME_DELETE"/>

    <SecurityGroupPermission groupId="FULLADMIN" permissionId="VISUALTHEME_ADMIN"/>
    <SecurityGroupPermission groupId="FULLADMIN" permissionId="COMMON_ADMIN"/>

    <SecurityGroupPermission groupId="VIEWADMIN" permissionId="COMMON_VIEW"/>

    <!-- User preferences security -->
    <SecurityPermission description="User preferences admin" permissionId="USERPREF_ADMIN"/>
    <SecurityGroupPermission groupId="FULLADMIN" permissionId="USERPREF_ADMIN"/>

    <!-- Temporal expression security -->
    <SecurityPermission description="Temporal expression admin" permissionId="TEMPEXPR_ADMIN"/>
    <SecurityGroupPermission groupId="FULLADMIN" permissionId="TEMPEXPR_ADMIN"/>

    <ArtifactPath artifactPath="ofbiz/bi" description="Business Intelligence Application"/>
    <ArtifactPath artifactPath="ofbiz/images" description="Public Static Images URL"/>
    <ArtifactPath artifactPath="ofbiz/tempfiles" description="Temporary Files URL"/>
    <UserToArtifactPermRel userLoginId="NOT_LOGGED_IN" artifactPath="ofbiz/bi" permissionValue="view=true"/>

    <!-- Data needed for the transition to security-aware artifacts. As each webapp
         is converted over to the new security design, the corresponding admin
         permission should be removed. -->

    <UserGrpToArtifactPermRel groupId="OFBIZ_USERS" artifactPath="ofbiz/bi" permissionValue="admin=true"/>
    <UserGrpToArtifactPermRel groupId="OFBIZ_USERS" artifactPath="ofbiz/images" permissionValue="admin=true"/>
    <UserGrpToArtifactPermRel groupId="OFBIZ_USERS" artifactPath="ofbiz/tempfiles" permissionValue="admin=true"/>


</entity-engine-xml>
