diff options
author | Eike Stepper | 2012-06-10 05:14:13 +0000 |
---|---|---|
committer | Eike Stepper | 2012-06-10 05:14:13 +0000 |
commit | 7c04f6905700d5ee65f01b70ee07f0ac291d9451 (patch) | |
tree | 815f272a5c2471da505ca2b9af8d6cb8562cc647 /plugins | |
parent | 3aa06bd3de3bec99de8f70444a6324a7ce705565 (diff) | |
download | cdo-7c04f6905700d5ee65f01b70ee07f0ac291d9451.tar.gz cdo-7c04f6905700d5ee65f01b70ee07f0ac291d9451.tar.xz cdo-7c04f6905700d5ee65f01b70ee07f0ac291d9451.zip |
[380629] Design a default Security model
https://bugs.eclipse.org/bugs/show_bug.cgi?id=380629
Diffstat (limited to 'plugins')
7 files changed, 125 insertions, 19 deletions
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties index 0a78ace850..f1703a7476 100644 --- a/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties +++ b/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties @@ -85,3 +85,4 @@ _UI_User_unassignedRoles_feature = Unassigned Roles _UI_Realm_defaultPermission_feature = Default Permission _UI_User_defaultPermissionOverride_feature = Default Permission Override _UI_User_defaultPermission_feature = Default Permission +_UI_User_allChecks_feature = All Checks diff --git a/plugins/org.eclipse.emf.cdo.security/model/security.ecore b/plugins/org.eclipse.emf.cdo.security/model/security.ecore index fb055fac82..bbe75c2177 100644 --- a/plugins/org.eclipse.emf.cdo.security/model/security.ecore +++ b/plugins/org.eclipse.emf.cdo.security/model/security.ecore @@ -58,6 +58,8 @@ 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="allChecks" upperBound="-1" + eType="#//Check" 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"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString" diff --git a/plugins/org.eclipse.emf.cdo.security/model/security.genmodel b/plugins/org.eclipse.emf.cdo.security/model/security.genmodel index a13f5b7041..2e01449c8c 100644 --- a/plugins/org.eclipse.emf.cdo.security/model/security.genmodel +++ b/plugins/org.eclipse.emf.cdo.security/model/security.genmodel @@ -54,6 +54,7 @@ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference security.ecore#//User/groups"/> <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference security.ecore#//User/allGroups"/> <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference security.ecore#//User/allRoles"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference security.ecore#//User/allChecks"/> <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference security.ecore#//User/unassignedRoles"/> <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute security.ecore#//User/label"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute security.ecore#//User/firstName"/> diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityPackage.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityPackage.java index 7fca6bc1b6..9091c471fd 100644 --- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityPackage.java +++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityPackage.java @@ -526,13 +526,22 @@ public interface SecurityPackage extends EPackage int USER__ALL_ROLES = ASSIGNEE_FEATURE_COUNT + 2; /** + * The feature id for the '<em><b>All Checks</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int USER__ALL_CHECKS = ASSIGNEE_FEATURE_COUNT + 3; + + /** * The feature id for the '<em><b>Unassigned Roles</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int USER__UNASSIGNED_ROLES = ASSIGNEE_FEATURE_COUNT + 3; + int USER__UNASSIGNED_ROLES = ASSIGNEE_FEATURE_COUNT + 4; /** * The feature id for the '<em><b>Label</b></em>' attribute. @@ -541,7 +550,7 @@ public interface SecurityPackage extends EPackage * @generated * @ordered */ - int USER__LABEL = ASSIGNEE_FEATURE_COUNT + 4; + int USER__LABEL = ASSIGNEE_FEATURE_COUNT + 5; /** * The feature id for the '<em><b>First Name</b></em>' attribute. @@ -550,7 +559,7 @@ public interface SecurityPackage extends EPackage * @generated * @ordered */ - int USER__FIRST_NAME = ASSIGNEE_FEATURE_COUNT + 5; + int USER__FIRST_NAME = ASSIGNEE_FEATURE_COUNT + 6; /** * The feature id for the '<em><b>Last Name</b></em>' attribute. @@ -559,7 +568,7 @@ public interface SecurityPackage extends EPackage * @generated * @ordered */ - int USER__LAST_NAME = ASSIGNEE_FEATURE_COUNT + 6; + int USER__LAST_NAME = ASSIGNEE_FEATURE_COUNT + 7; /** * The feature id for the '<em><b>Email</b></em>' attribute. @@ -568,7 +577,7 @@ public interface SecurityPackage extends EPackage * @generated * @ordered */ - int USER__EMAIL = ASSIGNEE_FEATURE_COUNT + 7; + int USER__EMAIL = ASSIGNEE_FEATURE_COUNT + 8; /** * The feature id for the '<em><b>Default Permission Override</b></em>' attribute. @@ -577,7 +586,7 @@ public interface SecurityPackage extends EPackage * @generated * @ordered */ - int USER__DEFAULT_PERMISSION_OVERRIDE = ASSIGNEE_FEATURE_COUNT + 8; + int USER__DEFAULT_PERMISSION_OVERRIDE = ASSIGNEE_FEATURE_COUNT + 9; /** * The feature id for the '<em><b>Default Permission</b></em>' attribute. @@ -586,7 +595,7 @@ public interface SecurityPackage extends EPackage * @generated * @ordered */ - int USER__DEFAULT_PERMISSION = ASSIGNEE_FEATURE_COUNT + 9; + int USER__DEFAULT_PERMISSION = ASSIGNEE_FEATURE_COUNT + 10; /** * The feature id for the '<em><b>Locked</b></em>' attribute. @@ -595,7 +604,7 @@ public interface SecurityPackage extends EPackage * @generated * @ordered */ - int USER__LOCKED = ASSIGNEE_FEATURE_COUNT + 10; + int USER__LOCKED = ASSIGNEE_FEATURE_COUNT + 11; /** * The feature id for the '<em><b>Password</b></em>' containment reference. @@ -604,7 +613,7 @@ public interface SecurityPackage extends EPackage * @generated * @ordered */ - int USER__PASSWORD = ASSIGNEE_FEATURE_COUNT + 11; + int USER__PASSWORD = ASSIGNEE_FEATURE_COUNT + 12; /** * The number of structural features of the '<em>User</em>' class. @@ -613,7 +622,7 @@ public interface SecurityPackage extends EPackage * @generated * @ordered */ - int USER_FEATURE_COUNT = ASSIGNEE_FEATURE_COUNT + 12; + int USER_FEATURE_COUNT = ASSIGNEE_FEATURE_COUNT + 13; /** * The meta object id for the '{@link org.eclipse.emf.cdo.security.impl.UserPasswordImpl <em>User Password</em>}' class. @@ -1162,6 +1171,17 @@ public interface SecurityPackage extends EPackage EReference getUser_AllRoles(); /** + * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.security.User#getAllChecks <em>All Checks</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference list '<em>All Checks</em>'. + * @see org.eclipse.emf.cdo.security.User#getAllChecks() + * @see #getUser() + * @generated + */ + EReference getUser_AllChecks(); + + /** * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.security.User#getUnassignedRoles <em>Unassigned Roles</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1674,6 +1694,14 @@ public interface SecurityPackage extends EPackage EReference USER__ALL_ROLES = eINSTANCE.getUser_AllRoles(); /** + * The meta object literal for the '<em><b>All Checks</b></em>' reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference USER__ALL_CHECKS = eINSTANCE.getUser_AllChecks(); + + /** * The meta object literal for the '<em><b>Unassigned Roles</b></em>' reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/User.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/User.java index 9ca84e7d18..c7e1bf94a1 100644 --- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/User.java +++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/User.java @@ -23,6 +23,7 @@ import org.eclipse.emf.common.util.EList; * <li>{@link org.eclipse.emf.cdo.security.User#getGroups <em>Groups</em>}</li> * <li>{@link org.eclipse.emf.cdo.security.User#getAllGroups <em>All Groups</em>}</li> * <li>{@link org.eclipse.emf.cdo.security.User#getAllRoles <em>All Roles</em>}</li> + * <li>{@link org.eclipse.emf.cdo.security.User#getAllChecks <em>All Checks</em>}</li> * <li>{@link org.eclipse.emf.cdo.security.User#getUnassignedRoles <em>Unassigned Roles</em>}</li> * <li>{@link org.eclipse.emf.cdo.security.User#getLabel <em>Label</em>}</li> * <li>{@link org.eclipse.emf.cdo.security.User#getFirstName <em>First Name</em>}</li> @@ -92,6 +93,22 @@ public interface User extends Assignee EList<Role> getAllRoles(); /** + * Returns the value of the '<em><b>All Checks</b></em>' reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.security.Check}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>All Checks</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>All Checks</em>' reference list. + * @see org.eclipse.emf.cdo.security.SecurityPackage#getUser_AllChecks() + * @model transient="true" changeable="false" volatile="true" derived="true" + * @generated + */ + EList<Check> getAllChecks(); + + /** * Returns the value of the '<em><b>Unassigned Roles</b></em>' reference list. * The list contents are of type {@link org.eclipse.emf.cdo.security.Role}. * <!-- begin-user-doc --> diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityPackageImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityPackageImpl.java index a421c687fa..7e4edb4037 100644 --- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityPackageImpl.java +++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityPackageImpl.java @@ -524,7 +524,7 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage * <!-- end-user-doc --> * @generated */ - public EReference getUser_UnassignedRoles() + public EReference getUser_AllChecks() { return (EReference)userEClass.getEStructuralFeatures().get(3); } @@ -534,9 +534,19 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage * <!-- end-user-doc --> * @generated */ + public EReference getUser_UnassignedRoles() + { + return (EReference)userEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public EAttribute getUser_Label() { - return (EAttribute)userEClass.getEStructuralFeatures().get(4); + return (EAttribute)userEClass.getEStructuralFeatures().get(5); } /** @@ -546,7 +556,7 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage */ public EAttribute getUser_FirstName() { - return (EAttribute)userEClass.getEStructuralFeatures().get(5); + return (EAttribute)userEClass.getEStructuralFeatures().get(6); } /** @@ -556,7 +566,7 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage */ public EAttribute getUser_LastName() { - return (EAttribute)userEClass.getEStructuralFeatures().get(6); + return (EAttribute)userEClass.getEStructuralFeatures().get(7); } /** @@ -566,7 +576,7 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage */ public EAttribute getUser_Email() { - return (EAttribute)userEClass.getEStructuralFeatures().get(7); + return (EAttribute)userEClass.getEStructuralFeatures().get(8); } /** @@ -576,7 +586,7 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage */ public EAttribute getUser_DefaultPermissionOverride() { - return (EAttribute)userEClass.getEStructuralFeatures().get(8); + return (EAttribute)userEClass.getEStructuralFeatures().get(9); } /** @@ -586,7 +596,7 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage */ public EAttribute getUser_DefaultPermission() { - return (EAttribute)userEClass.getEStructuralFeatures().get(9); + return (EAttribute)userEClass.getEStructuralFeatures().get(10); } /** @@ -596,7 +606,7 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage */ public EAttribute getUser_Locked() { - return (EAttribute)userEClass.getEStructuralFeatures().get(10); + return (EAttribute)userEClass.getEStructuralFeatures().get(11); } /** @@ -606,7 +616,7 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage */ public EReference getUser_Password() { - return (EReference)userEClass.getEStructuralFeatures().get(11); + return (EReference)userEClass.getEStructuralFeatures().get(12); } /** @@ -798,6 +808,7 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage createEReference(userEClass, USER__GROUPS); createEReference(userEClass, USER__ALL_GROUPS); createEReference(userEClass, USER__ALL_ROLES); + createEReference(userEClass, USER__ALL_CHECKS); createEReference(userEClass, USER__UNASSIGNED_ROLES); createEAttribute(userEClass, USER__LABEL); createEAttribute(userEClass, USER__FIRST_NAME); @@ -1005,6 +1016,11 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage null, "allRoles", null, 0, -1, User.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ initEReference( + getUser_AllChecks(), + this.getCheck(), + null, + "allChecks", null, 0, -1, User.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ + initEReference( getUser_UnassignedRoles(), this.getRole(), null, diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/UserImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/UserImpl.java index 04b13c3677..b94c8f2171 100644 --- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/UserImpl.java +++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/UserImpl.java @@ -10,6 +10,7 @@ */ package org.eclipse.emf.cdo.security.impl; +import org.eclipse.emf.cdo.security.Check; import org.eclipse.emf.cdo.security.Group; import org.eclipse.emf.cdo.security.Permission; import org.eclipse.emf.cdo.security.Realm; @@ -18,6 +19,7 @@ import org.eclipse.emf.cdo.security.SecurityPackage; import org.eclipse.emf.cdo.security.User; import org.eclipse.emf.cdo.security.UserPassword; +import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EStructuralFeature; @@ -36,6 +38,7 @@ import java.util.Set; * <li>{@link org.eclipse.emf.cdo.security.impl.UserImpl#getGroups <em>Groups</em>}</li> * <li>{@link org.eclipse.emf.cdo.security.impl.UserImpl#getAllGroups <em>All Groups</em>}</li> * <li>{@link org.eclipse.emf.cdo.security.impl.UserImpl#getAllRoles <em>All Roles</em>}</li> + * <li>{@link org.eclipse.emf.cdo.security.impl.UserImpl#getAllChecks <em>All Checks</em>}</li> * <li>{@link org.eclipse.emf.cdo.security.impl.UserImpl#getUnassignedRoles <em>Unassigned Roles</em>}</li> * <li>{@link org.eclipse.emf.cdo.security.impl.UserImpl#getLabel <em>Label</em>}</li> * <li>{@link org.eclipse.emf.cdo.security.impl.UserImpl#getFirstName <em>First Name</em>}</li> @@ -110,6 +113,34 @@ public class UserImpl extends AssigneeImpl implements User } }; + private EList<Check> allChecks = new CachedList<Check>() + { + @Override + protected InternalEObject getOwner() + { + return UserImpl.this; + } + + @Override + protected EStructuralFeature getFeature() + { + return SecurityPackage.Literals.USER__ALL_CHECKS; + } + + @Override + protected Object[] getData() + { + BasicEList<Check> result = new BasicEList<Check>(); + + for (Role role : getAllRoles()) + { + result.addAll(role.getChecks()); + } + + return result.data(); + } + }; + private EList<Role> unassignedRoles = new CachedList<Role>() { @Override @@ -197,6 +228,16 @@ public class UserImpl extends AssigneeImpl implements User * <!-- end-user-doc --> * @generated NOT */ + public EList<Check> getAllChecks() + { + return allChecks; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ public EList<Role> getUnassignedRoles() { return unassignedRoles; |