RolesSourceProvider to enable activities by cdm roles and protecting bulkeditors...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / plugin.xml
index 0f385a5af4379ea0d8e7284f951117b331af9ada..3eeaba994bdfd8eec0d2d23cd438303f34010df5 100644 (file)
             id="eu.etaxonomy.taxeditor.preferences.typeDesignation"
             name="Type Designations">
       </page>
+      <page
+            category="eu.etaxonomy.taxeditor.preferences.general"
+            class="eu.etaxonomy.taxeditor.preference.SpecimenOrObservationPreferences"
+            id="eu.etaxonomy.taxeditor.preference.SpecimenOrObservationPreferences"
+            name="Specimens and FieldUnits">
+      </page>
    </extension>
    <extension
          point="org.eclipse.ui.views">
         id="eu.etaxonomy.taxeditor.view.userecords"
         name="Use Records"
         restorable="true">
+  </view>
+  <view
+        class="eu.etaxonomy.taxeditor.view.derivateSearch.DerivateSearchView"
+        icon="icons/derivate_search_view-16x16-32.png"
+        id="eu.etaxonomy.taxeditor.view.derivateSearch.DerivateSearchView"
+        name="Derivate Search"
+        restorable="true">
   </view>
    </extension>
    <extension
          <menu
                id="eu.etaxonomy.taxeditor.menu.showView"
                label="Show View">
+            <command
+                  commandId="org.eclipse.ui.views.showView"
+                  label="Derivate Search View"
+                  style="push">
+               <parameter
+                     name="org.eclipse.ui.views.showView.viewId"
+                     value="eu.etaxonomy.taxeditor.view.derivateSearch.DerivateSearchView">
+               </parameter>
+            </command>
             <separator
                   name="eu.etaxonomy.taxeditor.store.showViewMenu.details"
                   visible="true">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.store.datasource.update"
-               label="Update"
+               label="Update Datamodel"
                style="push">
             <visibleWhen
                   checkEnabled="true">
          </command>
       </menuContribution>
    </extension>
-   <extension
-         name="Window Menu Commands"
-         point="org.eclipse.ui.commands">
-      <command
-            defaultHandler="eu.etaxonomy.taxeditor.editor.definedterm.handler.OpenDefinedTermEditorHandler"
-            id="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
-            name="Open Defined Term Editor">
-         <commandParameter
-               id="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
-               name="inputType"
-               optional="true">
-         </commandParameter>
-         <commandParameter
-               id="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid"
-               name="inputType"
-               optional="true">
-         </commandParameter>
-      </command>
-   </extension>
-   <extension
-         name="File Menu Commands"
-         point="org.eclipse.ui.commands">
-      <command
-            defaultHandler="eu.etaxonomy.taxeditor.handler.ShowLoginWindowHandler"
-            id="eu.etaxonomy.taxeditor.store.operations.showLoginWindow"
-            name="Show Login Window">
-      </command>
-   </extension>
    <extension
          point="org.eclipse.ui.handlers">
       <handler
             id="eu.etaxonomy.taxeditor.store.datasource.update"
             name="Update Datasource">
       </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.handler.ShowLoginWindowHandler"
+            id="eu.etaxonomy.taxeditor.store.operations.showLoginWindow"
+            name="Show Login Window">
+      </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.definedterm.handler.OpenDefinedTermEditorHandler"
+            id="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
+            name="Open Defined Term Editor">
+         <commandParameter
+               id="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
+               name="inputType"
+               optional="true">
+         </commandParameter>
+         <commandParameter
+               id="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid"
+               name="inputType"
+               optional="true">
+         </commandParameter>
+      </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.editor.definedterm.handler.CreateDefinedTermHandler"
             id="eu.etaxonomy.taxeditor.editor.definedTerms.newDefinedTerm"
          properties="isModifiable"
          type="org.eclipse.jface.viewers.IStructuredSelection">
    </propertyTester>
+   <propertyTester
+        class="eu.etaxonomy.taxeditor.security.PermissionPropertyTester"
+        id="eu.etaxonomy.taxeditor.security.permissionTester"
+        namespace="eu.etaxonomy.taxeditor.security.permissionTester"
+        properties="hasPermissions, hasRoles"
+        type="org.eclipse.jface.viewers.IStructuredSelection">
+   </propertyTester>
 </extension>
 <extension
       point="org.eclipse.core.expressions.definitions">
          </test>
       </with>
    </definition>
+   <definition
+            id="canUPDATE">
+               <with
+                       variable="selection">
+                <test
+                      args="UPDATE"
+                      property="eu.etaxonomy.taxeditor.security.permissionTester.hasPermissions">
+                </test>
+         </with>
+      </definition>
+      <definition
+            id="canDELETE">
+         <with
+               variable="selection">
+            <test
+                  args="DELETE"
+                  property="eu.etaxonomy.taxeditor.security.permissionTester.hasPermissions">
+            </test>
+         </with>
+    </definition>
+      <definition
+            id="canCREATE">
+         <with
+               variable="selection">
+            <test
+                  args="CREATE"
+                  property="eu.etaxonomy.taxeditor.security.permissionTester.hasPermissions">
+            </test>
+         </with>
+      </definition>
+      <definition
+            id="hasROLE_USER_MANAGER">
+            <with
+               variable="eu.etaxonomy.taxeditor.security.userRoles">
+            <iterate
+                  ifEmpty="false"
+                  operator="or">
+               <or>
+                  <equals
+                        value="ROLE_ADMIN">
+                  </equals>
+                  <equals
+                        value="ROLE_USER_MANAGER">
+                  </equals>
+               </or>
+            </iterate>
+         </with>
+      </definition>
+      <definition
+            id="hasROLE_PROJECT_MANAGER">
+         <with
+               variable="eu.etaxonomy.taxeditor.security.userRoles">
+            <iterate
+                  ifEmpty="false"
+                  operator="or">
+               <or>
+                  <equals
+                        value="ROLE_ADMIN">
+                  </equals>
+                  <equals
+                        value="ROLE_PROJECT_MANAGER">
+                  </equals>
+               </or>
+            </iterate>
+         </with>
+      </definition>
+</extension>
+<extension
+      point="org.eclipse.ui.activities">
+   <activity
+         description="DELETE permission dependent ui contributions"
+         id="eu.etaxonomy.taxeditor.store.activityDelete"
+         name="Delete">
+      <enabledWhen>
+         <reference
+               definitionId="canDELETE">
+         </reference>
+      </enabledWhen>
+   </activity>
+   <activityPatternBinding
+         activityId="eu.etaxonomy.taxeditor.store.activityDelete"
+         pattern="eu\.etaxonomy\.taxeditor\..*/.*.delete">
+   </activityPatternBinding>
+   <activity
+         description="UPDATE permission dependent ui contributions"
+         id="eu.etaxonomy.taxeditor.store.activityUpdate"
+         name="Update">
+      <enabledWhen>
+         <reference
+               definitionId="canUPDATE">
+         </reference>
+      </enabledWhen>
+   </activity>
+   <activityPatternBinding
+         activityId="eu.etaxonomy.taxeditor.store.activityUpdate"
+         pattern="eu\.etaxonomy\.taxeditor\..*/.*.command\.update\..*">
+   </activityPatternBinding>
+   <activity
+         description="CREATE permission dependent ui contributions"
+         id="eu.etaxonomy.taxeditor.store.activityCreate"
+         name="Delete">
+      <enabledWhen>
+         <reference
+               definitionId="canDELETE">
+         </reference>
+      </enabledWhen>
+   </activity>
+   <activityPatternBinding
+         activityId="eu.etaxonomy.taxeditor.store.activityCreate"
+         pattern="eu\.etaxonomy\.taxeditor\..*/.*.command\.create\..*">
+   </activityPatternBinding>
+   <activity
+         description="ROLE_USER_MANAGER dependent ui contributions"
+         id="eu.etaxonomy.taxeditor.store.activityUserManagement"
+         name="UserManagement">
+      <enabledWhen>
+         <reference
+               definitionId="hasROLE_USER_MANAGER">
+         </reference>
+      </enabledWhen>
+   </activity>
+   <activityPatternBinding
+         activityId="eu.etaxonomy.taxeditor.store.activityUserManagement"
+         pattern="eu\.etaxonomy\.taxeditor\..*/.*.UserManagement">
+   </activityPatternBinding>
+   <activityPatternBinding
+         activityId="eu.etaxonomy.taxeditor.store.activityUserManagement"
+         pattern="eu\.etaxonomy\.taxeditor\..*/bulkeditor\.input\.group">
+   </activityPatternBinding>
+   <activity
+         description="ROLE_PROJECT_MANAGER dependent ui contributions"
+         id="eu.etaxonomy.taxeditor.store.activityProjectManagement"
+         name="ProjectManagement">
+      <enabledWhen>
+         <reference
+               definitionId="hasROLE_PROJECT_MANAGER">
+         </reference>
+      </enabledWhen>
+   </activity>
+   <activityPatternBinding
+         activityId="eu.etaxonomy.taxeditor.store.activityProjectManagement"
+         pattern="eu\.etaxonomy\.taxeditor\..*/eu\.etaxonomy\.taxeditor\..*\.definedTerm.*">
+   </activityPatternBinding>
+   <activityPatternBinding
+         activityId="eu.etaxonomy.taxeditor.store.activityProjectManagement"
+         pattern="eu.etaxonomy.taxeditor.bulkeditor/bulkeditor.menus.openmenu"
+         isEqualityPattern="true">
+   </activityPatternBinding>
+</extension>
+<extension
+      point="org.eclipse.ui.services">
+   <sourceProvider
+         provider="eu.etaxonomy.taxeditor.security.RolesSourceProvider">
+      <variable
+            name="eu.etaxonomy.taxeditor.security.userRoles"
+            priorityLevel="workbench">
+      </variable>
+   </sourceProvider>
 </extension>
        
 </plugin>