122 lines
5.0 KiB
Smarty
122 lines
5.0 KiB
Smarty
@//////////////////////////////////////////////////////////////////////////////
|
|
@// 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$ .)
|
|
|