This commit is contained in:
Jürgen Doser 2007-02-09 09:55:34 +00:00
parent 08d3897b87
commit 54b804076a
5 changed files with 28 additions and 6 deletions

View File

@ -99,6 +99,7 @@ fun test env "first_permission" =
fun foreach_permission env name =
let val action = Option.valOf (List.find (fn x => ComponentUML.action_type_of x = name)
(atomic_actions_from_context env))
handle Option => error ("error in finding action "^name)
val permissions = permissions_for_action env action
fun env_from_list_item c = { curPermissionList = SOME permissions,
curPermission = SOME c,
@ -125,9 +126,6 @@ fun foreach_entity (env:environment) =
List.map env_from_list_item entities
end*)
fun foreach_attribute _ = []
fun foreach_method _ = []
fun foreach_assocend _ = []
fun foreach "readPermission_list" env = foreach_permission env "read"
| foreach "updatePermission_list" env = foreach_permission env "update"

View File

@ -114,7 +114,8 @@ fun write env (Tpl_Parser.RootNode(l)) = List.app (write env)
fun write_children e = List.app (fn tree => write e tree) children
in
List.app (fn e => write_children e) list_of_environments
handle ex => (error_msg ("in GCG_Core.write: error in foreach node "^listType);
handle ex => (error_msg ("in GCG_Core.write: error in foreach node "^listType^
": "^General.exnMessage ex);
())
end

View File

@ -44,6 +44,7 @@ open ListEq
(*return the initial state*)
exception MalformedStateMachine
(* TODO: check which functions here are really used... *)
(************************************)
(* STATE handling functions: *)

View File

@ -53,6 +53,28 @@
(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$ .)

View File

@ -149,11 +149,11 @@ fun filter_subject cs = List.filter (classifier_has_stereotype "secuml.user") cs
fun filter_role cs = List.filter (classifier_has_stereotype "secuml.role") cs
fun mkRole (C as Rep.Class c) = Rep.string_of_path (Rep.name_of C)
fun mkRole (C as Rep.Class c) = Rep.short_name_of C
| mkRole _ = error ("in mkRole: argument is not a class")
(* FIXME: handle groups also *)
fun mkSubject (C as Rep.Class c) = User (Rep.string_of_path (Rep.name_of C))
fun mkSubject (C as Rep.Class c) = User (Rep.short_name_of C)
| mkSubject _ = error ("in mkSubject: argument is not a class")
fun mkPermission cs (c as Rep.Class _) =