Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-05-28 08:32:03 +0000
committerEike Stepper2012-05-28 08:32:03 +0000
commitddc6120a7f9db25f5991e5f0bf2db600482b4cad (patch)
treec9858b1d1dd7f887d2caaa90cd0e91d5b3b555c4 /plugins
parent1ef49aa5c994733ec662249f9a417020d6f28b01 (diff)
downloadcdo-ddc6120a7f9db25f5991e5f0bf2db600482b4cad.tar.gz
cdo-ddc6120a7f9db25f5991e5f0bf2db600482b4cad.tar.xz
cdo-ddc6120a7f9db25f5991e5f0bf2db600482b4cad.zip
[380629] Design a default Security model
https://bugs.eclipse.org/bugs/show_bug.cgi?id=380629
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/plugin.properties6
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/GroupItemProvider.java48
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/SecurityItemProviderAdapterFactory.java16
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/UserItemProvider.java51
-rw-r--r--plugins/org.eclipse.emf.cdo.security.editor/src/org/eclipse/emf/cdo/security/presentation/SecurityEditor.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.security/model/security.ecore12
-rw-r--r--plugins/org.eclipse.emf.cdo.security/model/security.ecorediag56
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Group.java51
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityPackage.java186
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/User.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/CachedList.java345
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/GroupImpl.java126
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityFactoryImpl.java15
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityPackageImpl.java161
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/UserImpl.java97
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecurityAdapterFactory.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecuritySwitch.java64
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java26
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/ISecurityManager.java8
19 files changed, 1175 insertions, 149 deletions
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties
index beaad9d7aa..ffc4ef785c 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties
+++ b/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties
@@ -59,3 +59,9 @@ _UI_Group_inheritingGroups_feature = Inheriting Groups
_UI_Directory_type = Directory
_UI_Directory_items_feature = Items
_UI_Directory_name_feature = Name
+_UI_Group_allInheritedGroups_feature = All Inherited Groups
+_UI_Group_allRoles_feature = All Roles
+_UI_User_allGroups_feature = All Groups
+_UI_User_allRoles_feature = All Roles
+_UI_User_label_feature = Label
+_UI_Group_allInheritingGroups_feature = All Inheriting Groups
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/GroupItemProvider.java b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/GroupItemProvider.java
index aee28b3b49..236bb331a7 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/GroupItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/GroupItemProvider.java
@@ -66,7 +66,10 @@ public class GroupItemProvider extends AssigneeItemProvider implements IEditingD
super.getPropertyDescriptors(object);
addInheritedGroupsPropertyDescriptor(object);
+ addAllInheritedGroupsPropertyDescriptor(object);
addInheritingGroupsPropertyDescriptor(object);
+ addAllInheritingGroupsPropertyDescriptor(object);
+ addAllRolesPropertyDescriptor(object);
addUsersPropertyDescriptor(object);
}
return itemPropertyDescriptors;
@@ -118,6 +121,51 @@ public class GroupItemProvider extends AssigneeItemProvider implements IEditingD
}
/**
+ * This adds a property descriptor for the All Inheriting Groups feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllInheritingGroupsPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_Group_allInheritingGroups_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Group_allInheritingGroups_feature", "_UI_Group_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.GROUP__ALL_INHERITING_GROUPS, false, false, false, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the All Inherited Groups feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllInheritedGroupsPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_Group_allInheritedGroups_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Group_allInheritedGroups_feature", "_UI_Group_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.GROUP__ALL_INHERITED_GROUPS, false, false, false, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the All Roles feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllRolesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_Group_allRoles_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Group_allRoles_feature", "_UI_Group_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.GROUP__ALL_ROLES, false, false, false, null, null, null));
+ }
+
+ /**
* This returns Group.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/SecurityItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/SecurityItemProviderAdapterFactory.java
index 36f9559850..26b612adbb 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/SecurityItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/SecurityItemProviderAdapterFactory.java
@@ -312,7 +312,7 @@ public class SecurityItemProviderAdapterFactory extends SecurityAdapterFactory i
if (isFactoryForType(type))
{
Object adapter = super.adapt(object, type);
- if (!(type instanceof Class<?>) || ((Class<?>)type).isInstance(adapter))
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter)))
{
return adapter;
}
@@ -390,7 +390,7 @@ public class SecurityItemProviderAdapterFactory extends SecurityAdapterFactory i
}
/**
- * This disposes all of the item providers created by this factory.
+ * This disposes all of the item providers created by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -398,29 +398,17 @@ public class SecurityItemProviderAdapterFactory extends SecurityAdapterFactory i
public void dispose()
{
if (realmItemProvider != null)
- {
realmItemProvider.dispose();
- }
if (directoryItemProvider != null)
- {
directoryItemProvider.dispose();
- }
if (roleItemProvider != null)
- {
roleItemProvider.dispose();
- }
if (groupItemProvider != null)
- {
groupItemProvider.dispose();
- }
if (userItemProvider != null)
- {
userItemProvider.dispose();
- }
if (userPasswordItemProvider != null)
- {
userPasswordItemProvider.dispose();
- }
}
}
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/UserItemProvider.java b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/UserItemProvider.java
index 9dd8e137b9..68b2b2c70a 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/UserItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/UserItemProvider.java
@@ -70,6 +70,9 @@ public class UserItemProvider extends AssigneeItemProvider implements IEditingDo
super.getPropertyDescriptors(object);
addGroupsPropertyDescriptor(object);
+ addAllGroupsPropertyDescriptor(object);
+ addAllRolesPropertyDescriptor(object);
+ addLabelPropertyDescriptor(object);
addFirstNamePropertyDescriptor(object);
addLastNamePropertyDescriptor(object);
addEmailPropertyDescriptor(object);
@@ -94,6 +97,53 @@ public class UserItemProvider extends AssigneeItemProvider implements IEditingDo
}
/**
+ * This adds a property descriptor for the All Groups feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllGroupsPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_User_allGroups_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_User_allGroups_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.USER__ALL_GROUPS, false, false, false, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the All Roles feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllRolesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_User_allRoles_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_User_allRoles_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.USER__ALL_ROLES, false, false, false, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Label feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLabelPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_User_label_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_User_label_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.USER__LABEL, false, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null,
+ null));
+ }
+
+ /**
* This adds a property descriptor for the First Name feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -245,6 +295,7 @@ public class UserItemProvider extends AssigneeItemProvider implements IEditingDo
switch (notification.getFeatureID(User.class))
{
+ case SecurityPackage.USER__LABEL:
case SecurityPackage.USER__FIRST_NAME:
case SecurityPackage.USER__LAST_NAME:
case SecurityPackage.USER__EMAIL:
diff --git a/plugins/org.eclipse.emf.cdo.security.editor/src/org/eclipse/emf/cdo/security/presentation/SecurityEditor.java b/plugins/org.eclipse.emf.cdo.security.editor/src/org/eclipse/emf/cdo/security/presentation/SecurityEditor.java
index efba1b23f7..ddab24cf48 100644
--- a/plugins/org.eclipse.emf.cdo.security.editor/src/org/eclipse/emf/cdo/security/presentation/SecurityEditor.java
+++ b/plugins/org.eclipse.emf.cdo.security.editor/src/org/eclipse/emf/cdo/security/presentation/SecurityEditor.java
@@ -1361,7 +1361,7 @@ public class SecurityEditor extends MultiPageEditorPart implements IEditingDomai
/**
* This returns whether something has been persisted to the URI of the specified resource.
- * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -1426,7 +1426,7 @@ public class SecurityEditor extends MultiPageEditorPart implements IEditingDomai
*/
protected void doSaveAs(URI uri, IEditorInput editorInput)
{
- editingDomain.getResourceSet().getResources().get(0).setURI(uri);
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
setInputWithNotify(editorInput);
setPartName(editorInput.getName());
IProgressMonitor progressMonitor = getActionBars().getStatusLineManager() != null ? getActionBars()
diff --git a/plugins/org.eclipse.emf.cdo.security/model/security.ecore b/plugins/org.eclipse.emf.cdo.security/model/security.ecore
index ac6b3d4d68..2fb7329c14 100644
--- a/plugins/org.eclipse.emf.cdo.security/model/security.ecore
+++ b/plugins/org.eclipse.emf.cdo.security/model/security.ecore
@@ -30,14 +30,26 @@
<eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//Assignee">
<eStructuralFeatures xsi:type="ecore:EReference" name="inheritedGroups" upperBound="-1"
eType="#//Group" eOpposite="#//Group/inheritingGroups"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allInheritedGroups" upperBound="-1"
+ eType="#//Group" changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="inheritingGroups" upperBound="-1"
eType="#//Group" eOpposite="#//Group/inheritedGroups"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allInheritingGroups" upperBound="-1"
+ eType="#//Group" changeable="false" volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allRoles" upperBound="-1"
+ eType="#//Role" changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="users" upperBound="-1"
eType="#//User" eOpposite="#//User/groups"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="User" eSuperTypes="#//Assignee">
<eStructuralFeatures xsi:type="ecore:EReference" name="groups" upperBound="-1"
eType="#//Group" eOpposite="#//Group/users"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allGroups" upperBound="-1"
+ eType="#//Group" changeable="false" volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allRoles" upperBound="-1"
+ eType="#//Role" changeable="false" volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="firstName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lastName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="email" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
diff --git a/plugins/org.eclipse.emf.cdo.security/model/security.ecorediag b/plugins/org.eclipse.emf.cdo.security/model/security.ecorediag
index 9fdfc768a2..48394ff517 100644
--- a/plugins/org.eclipse.emf.cdo.security/model/security.ecorediag
+++ b/plugins/org.eclipse.emf.cdo.security/model/security.ecorediag
@@ -18,7 +18,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_RJPw4KYxEeGAP_kHrioTcA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//SecurityElement"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RJPw4aYxEeGAP_kHrioTcA" x="145" y="30" width="198" height="63"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RJPw4aYxEeGAP_kHrioTcA" x="165" y="30" width="152" height="63"/>
</children>
<children xmi:type="notation:Node" xmi:id="_glO9wKYxEeGAP_kHrioTcA" type="1001">
<children xmi:type="notation:Node" xmi:id="_glSBEKYxEeGAP_kHrioTcA" type="4001"/>
@@ -39,6 +39,26 @@
<children xmi:type="notation:Node" xmi:id="_kzdRsKYxEeGAP_kHrioTcA" type="1001">
<children xmi:type="notation:Node" xmi:id="_kzgVAKYxEeGAP_kHrioTcA" type="4001"/>
<children xmi:type="notation:Node" xmi:id="_kzg8EKYxEeGAP_kHrioTcA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_SzKPoKiPEeGRhZdyAvKGEg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="security.ecore#//User/label"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SzKPoaiPEeGRhZdyAvKGEg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AEWAEqiPEeGRhZdyAvKGEg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="security.ecore#//User/firstName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AEWAE6iPEeGRhZdyAvKGEg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AEWAFKiPEeGRhZdyAvKGEg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="security.ecore#//User/lastName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AEWAFaiPEeGRhZdyAvKGEg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AEWAFqiPEeGRhZdyAvKGEg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="security.ecore#//User/email"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AEWAF6iPEeGRhZdyAvKGEg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AEWAGKiPEeGRhZdyAvKGEg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="security.ecore#//User/locked"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AEWAGaiPEeGRhZdyAvKGEg"/>
+ </children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_kzg8EaYxEeGAP_kHrioTcA"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_kzg8EqYxEeGAP_kHrioTcA"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_kzg8E6YxEeGAP_kHrioTcA"/>
@@ -66,7 +86,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_0ZWzEaYyEeGAP_kHrioTcA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//Group"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0ZWzEqYyEeGAP_kHrioTcA" x="451" y="420"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0ZWzEqYyEeGAP_kHrioTcA" x="450" y="420"/>
</children>
<children xmi:type="notation:Node" xmi:id="_vaiTMKYzEeGAP_kHrioTcA" type="1001">
<children xmi:type="notation:Node" xmi:id="_vajhUKYzEeGAP_kHrioTcA" type="4001"/>
@@ -154,7 +174,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_L9EJcaY9EeGAP_kHrioTcA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//UserPassword"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L9EJcqY9EeGAP_kHrioTcA" x="203" y="545" width="162"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L9EJcqY9EeGAP_kHrioTcA" x="203" y="560" width="162"/>
</children>
<styles xmi:type="notation:DiagramStyle" xmi:id="_Lqg3UKYxEeGAP_kHrioTcA"/>
<element xmi:type="ecore:EPackage" href="security.ecore#/"/>
@@ -162,26 +182,26 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_ix63waYxEeGAP_kHrioTcA" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_ix63wqYxEeGAP_kHrioTcA" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ix63w6YxEeGAP_kHrioTcA" points="[0, -24, -98, 71]$[0, -49, -98, 46]$[103, -49, 5, 46]$[103, -84, 5, 11]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ix63w6YxEeGAP_kHrioTcA" points="[-1, -24, -97, 71]$[-1, -55, -97, 40]$[100, -55, 4, 40]$[100, -84, 4, 11]"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_olgfoKY0EeGAP_kHrioTcA" id="(0.4696969696969697,0.8356164383561644)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_ux6-kKY0EeGAP_kHrioTcA" type="3003" source="_kzdRsKYxEeGAP_kHrioTcA" target="_vaiTMKYzEeGAP_kHrioTcA">
<styles xmi:type="notation:ConnectorStyle" xmi:id="_ux6-kaY0EeGAP_kHrioTcA" routing="Rectilinear" lineColor="4210752"