@////////////////////////////////////////////////////////////////////////////// @// su4sml --- an SML repository for managing (Secure)UML/OCL models @// http://projects.brucker.ch/su4sml/ @// @// securemova.tpl --- @// This file is part of su4sml. @// @// Copyright (c) 2005-2007, ETH Zurich, Switzerland @// @// All rights reserved. @// @// Redistribution and use in source and binary forms, with or without @// modification, are permitted provided that the following conditions are @// met: @// @// * Redistributions of source code must retain the above copyright @// notice, this list of conditions and the following disclaimer. @// @// * Redistributions in binary form must reproduce the above @// copyright notice, this list of conditions and the following @// disclaimer in the documentation and/or other materials provided @// with the distribution. @// @// * Neither the name of the copyright holders nor the names of its @// contributors may be used to endorse or promote products derived @// from this software without specific prior written permission. @// @// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS @// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT @// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT @// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, @// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY @// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT @// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE @// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @/////////////////////////////////////////////////////////////////////////////// @// $Id$ @// base template @// assumption: all classifiers are classes @openfile generated/securemova/$classifier_package$.mova @// generated by su4sml GCG - Generic Code Generator load /home/doserj/projects/securemova/ocl-tool-v30/ocl-tool.maude @nl load /home/doserj/projects/securemova/ocl-tool-v30/securemova.maude @nl (create-security-diagram $classifier_package$ .) @nl @foreach role_list (insert-role $classifier_package$ : $role_name$ .) @nl @foreach superrole_list (insert-role-hierarchy $classifier_package$ | $role_name$ <-> $superrole_name$ .) @nl @end @end @foreach subject_list (insert-user $classifier_package$ : $subject_name$ .) @nl @foreach role_list (insert-user-assignment $classifier_package$ | $subject_name$ <-> $role_name$ .) @nl @end @end @foreach permission_list (insert-permission $classifier_package$ : $permission_name$ .) @nl @foreach role_list (insert-permission-assignment $classifier_package$ : $permission_name$ : $role_name$ .) @nl @end @end @foreach entity_list (insert-entity $classifier_package$ : $entity_name$ .) @nl @foreach attribute_list (insert-attribute $classifier_package$ : $entity_name$ : $attribute_name$ .) @nl @end @foreach assocend_list (insert-association-end $classifier_package$ : $entity_name$ : $assocend_name$ .) @nl @end @foreach operation_list @if operation_isQuery (insert-query-method $classifier_package$ : $entity_name$ : $operation_name$ .) @nl @else (insert-non-query-method $classifier_package$ : $entity_name$ : $operation_name$ .) @nl @end @end @end @foreach constraint_list (insert-authorization-constraint $classifier_package$ : auth$counter_next$ : $constraint_body$.) @nl (insert-authorization-constraint-assignment $classifier_package$ : $constraint_perm$ : auth$counter$ .) @nl @end @//TODO: also support composite actions (not supported in cartridge yet...) @foreach entity_list @foreach createPermission_list (insert-atomic-create $classifier_package$ : $permission_name$ : $entity_name$ .) @nl @end @foreach deletePermission_list (insert-atomic-delete $classifier_package$ : $permission_name$ : $entity_name$ .) @nl @end @foreach attribute_list @foreach readPermission_list (insert-atomic-read $classifier_package$ : $permission_name$ : $entity_name$ : $attribute_name$ .) @nl @end @foreach updatePermission_list (insert-atomic-update $classifier_package$ : $permission_name$ : $entity_name$ : $attribute_name$ .) @nl @end @end @foreach operation_list @foreach executePermission_list (insert-atomic-execute $classifier_package$ : $permission_name$ : $entity_name$ : $operation_name$ .) @nl @end @end @end @// FIXME: insert-entity-update et al. @// FIXME: (insert-entity-update $classifier_package$: $permission_name$ : $entity_name$ .)