blob: f9bd194e57acb33fa4f143182f892f612ac2c052 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="security" nsURI="http://www.eclipse.org/emf/CDO/security/4.1.0"
nsPrefix="security">
<eClassifiers xsi:type="ecore:EClass" name="SecurityElement" abstract="true" eSuperTypes="../../org.eclipse.emf.cdo/model/etypes.ecore#//ModelElement">
<eOperations name="getRealm" lowerBound="1" eType="#//Realm"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SecurityItem" abstract="true" eSuperTypes="#//SecurityElement"/>
<eClassifiers xsi:type="ecore:EClass" name="Realm" eSuperTypes="#//SecurityElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="HasAdministrator"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
eType="#//SecurityItem" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="allUsers" upperBound="-1"
eType="#//User" changeable="false" volatile="true" transient="true" derived="true"/>
<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:EReference" name="allPermissions" upperBound="-1"
eType="#//Permission" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultAccess" eType="#//AccessObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>The minimum level of access for all users on all objects in the repository.&#xA;This is not the default level of access for a user on an object that is not otherwise covered by some permission rule; all permissions are implicitly elevated to this level.&#xA;&lt;/p>&lt;p>&#xA;This default/minimum can be overridden, even to a lesser access level, for specific {@linkplain User#setDefaultAccessOverride(Access) users} on a case-by-case basis.&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="defaultUserDirectory" eType="#//Directory"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="defaultGroupDirectory"
eType="#//Directory"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="defaultRoleDirectory" eType="#//Directory"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Directory" eSuperTypes="#//SecurityItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
eType="#//SecurityItem" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Role" eSuperTypes="#//SecurityItem">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="permissions" upperBound="-1"
eType="#//Permission" containment="true" eOpposite="#//Permission/role"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="assignees" upperBound="-1"
eType="#//Assignee" eOpposite="#//Assignee/roles"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Assignee" abstract="true" eSuperTypes="#//SecurityItem">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="roles" upperBound="-1"
eType="#//Role" eOpposite="#//Role/assignees"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//Assignee">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="AcyclicInheritance"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="users" upperBound="-1"
eType="#//User" eOpposite="#//User/groups"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="inheritedGroups" upperBound="-1"
eType="#//Group" eOpposite="#//Group/inheritingGroups"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="inheritingGroups" upperBound="-1"
eType="#//Group" eOpposite="#//Group/inheritedGroups"/>
<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="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"/>
</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: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"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultAccessOverride"
eType="#//AccessObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>Overrides the {@link Realm}'s {@linkplain Realm#getDefaultAccess() default access permission} for this user.&#xA;When this attribute is set, its value establishes the minimum level of access for the user on all objects in the repository. In particular, it is not the access permission that applies to objects that are not otherwise covered by some permission rule for the user. All permissions are implicitly elevated at least to this override for the user.&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultAccess" eType="#//AccessObject"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>The minimum level of access for the user on all objects in the repository.&#xA;This is either the default set for {@linkplain Realm#getDefaultAccess() all users} in the {@link Realm} or an {@linkplain #getDefaultAccessOverride() override} set specifically on this user.&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="locked" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="password" eType="#//UserPassword"
containment="true"/>
<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:EReference" name="allPermissions" upperBound="-1"
eType="#//Permission" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="unassignedRoles" upperBound="-1"
eType="#//Role" changeable="false" volatile="true" transient="true" derived="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="UserPassword">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="encrypted" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Permission" abstract="true">
<eStructuralFeatures xsi:type="ecore:EReference" name="role" lowerBound="1" eType="#//Role"
eOpposite="#//Role/permissions"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="access" lowerBound="1"
eType="#//Access" defaultValueLiteral="WRITE"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ClassPermission" eSuperTypes="#//Permission">
<eStructuralFeatures xsi:type="ecore:EReference" name="applicableClass" lowerBound="1"
eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PackagePermission" eSuperTypes="#//Permission">
<eStructuralFeatures xsi:type="ecore:EReference" name="applicablePackage" lowerBound="1"
eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ResourcePermission" eSuperTypes="#//Permission">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="pattern" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ObjectPermission" abstract="true" eSuperTypes="#//Permission"/>
<eClassifiers xsi:type="ecore:EClass" name="FilterPermission" eSuperTypes="#//Permission">
<eStructuralFeatures xsi:type="ecore:EReference" name="filters" lowerBound="1"
upperBound="-1" eType="#//PermissionFilter" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PermissionFilter" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="LinkedFilter" eSuperTypes="#//PermissionFilter">
<eStructuralFeatures xsi:type="ecore:EReference" name="filter" lowerBound="1"
eType="#//PermissionFilter"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PackageFilter" eSuperTypes="#//PermissionFilter">
<eStructuralFeatures xsi:type="ecore:EReference" name="applicablePackage" lowerBound="1"
eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ClassFilter" eSuperTypes="#//PermissionFilter">
<eStructuralFeatures xsi:type="ecore:EReference" name="applicableClass" lowerBound="1"
eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="subTypes" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
defaultValueLiteral="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ResourceFilter" eSuperTypes="#//PermissionFilter">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="path" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="patternStyle" eType="#//PatternStyle"
defaultValueLiteral="TREE"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="folders" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="textResources" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="binaryResources" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="modelResources" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="modelObjects" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="includeParents" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="includeRoot" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
defaultValueLiteral="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ObjectFilter" abstract="true" eSuperTypes="#//PermissionFilter"/>
<eClassifiers xsi:type="ecore:EClass" name="ExpressionFilter" eSuperTypes="#//ObjectFilter">
<eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.emf.cdo.expressions/model/expressions.ecore#//Expression"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CombinedFilter" abstract="true" eSuperTypes="#//PermissionFilter">
<eStructuralFeatures xsi:type="ecore:EReference" name="operands" lowerBound="1"
upperBound="-1" eType="#//PermissionFilter" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NotFilter" eSuperTypes="#//CombinedFilter"/>
<eClassifiers xsi:type="ecore:EClass" name="AndFilter" eSuperTypes="#//CombinedFilter"/>
<eClassifiers xsi:type="ecore:EClass" name="OrFilter" eSuperTypes="#//CombinedFilter"/>
<eClassifiers xsi:type="ecore:EEnum" name="PatternStyle">
<eLiterals name="EXACT"/>
<eLiterals name="TREE" value="1"/>
<eLiterals name="ANT" value="2" literal="ANT"/>
<eLiterals name="REGEX" value="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="Access">
<eLiterals name="READ"/>
<eLiterals name="WRITE" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="AccessObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="Access:Object"/>
<details key="baseType" value="Access"/>
</eAnnotations>
</eClassifiers>
</ecore:EPackage>