]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.security.ui.admin/plugin.xml
Improve and simplify OSGi Boot
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / plugin.xml
index e260bdea40c18e9ab7a9ca6a11c5b87a44edf66b..2cf0ba210191824bea9c1854a47d791327b15bbf 100644 (file)
             name="Security">
       </perspective>
    </extension>
+   
+   <!-- VIEWS -->
    <extension
-         point="org.eclipse.ui.views">
+               point="org.eclipse.ui.views">
       <view
             class="org.argeo.eclipse.spring.SpringExtensionFactory"
             icon="icons/users.gif"
-            id="org.argeo.security.ui.admin.adminUsersView"
+            id="org.argeo.security.ui.admin.usersView"
             name="Users"
-            restorable="false">
+            restorable="true">
       </view>
       <view
             class="org.argeo.eclipse.spring.SpringExtensionFactory"
             icon="icons/role.gif"
-            id="org.argeo.security.ui.admin.adminRolesView"
-            name="Roles"
+            id="org.argeo.security.ui.admin.groupsView"
+            name="Groups"
             restorable="false">
       </view>
-   </extension>
-   <extension
-           point="org.eclipse.ui.editors">
-               <editor
-                 class="org.argeo.eclipse.spring.SpringExtensionFactory"
-              id="org.argeo.security.ui.admin.adminArgeoUserEditor"
-              name="User"
-              icon="icons/user.gif"
-              default="false">
-        </editor>
-     </extension>
+    </extension> 
+       
+       <!-- EDITORS -->
+       <extension
+               point="org.eclipse.ui.editors">
+               <editor
+                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
+            id="org.argeo.security.ui.admin.userEditor"
+            name="User"
+            icon="icons/user.gif"
+            default="false">
+               </editor>
+               <editor
+                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
+            id="org.argeo.security.ui.admin.groupEditor"
+            name="User"
+            icon="icons/users.gif"
+            default="false">
+               </editor>
+       </extension>
+    
     <extension
          point="org.eclipse.ui.commands">
-      <command
-            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
-            id="org.argeo.security.ui.admin.openArgeoUserEditor"
-            name="OpenArgeoUserEditor">
-                       <commandParameter
-                       id="org.argeo.security.ui.admin.username"
-                       name="Username">
-                       </commandParameter>
-      </command>
-      <command
-            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
-            id="org.argeo.security.ui.admin.refreshUsersList"
-            name="refreshUsersList">
-      </command>
-      <command
-            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+               <!-- User CRUD -->
+               <command
             id="org.argeo.security.ui.admin.newUser"
-            name="New User">
-      </command>
-      <command
-            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
-            id="org.argeo.security.ui.admin.deleteUser"
-            name="deleteUser">
-      </command>
-      <command
-            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
-            id="org.argeo.security.ui.admin.refreshRoles"
-            name="refreshRoles">
-      </command>
-      <command
-            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
-            id="org.argeo.security.ui.admin.addRole"
-            name="AddRole">
-      </command>
-      <command
             defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
-            id="org.argeo.security.ui.admin.deleteRole"
-            name="deleteRole">
-      </command>
-      <command
+            name="New User">
+       </command>
+               <command
+                       id="org.argeo.security.ui.admin.deleteUsers"
             defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+                       name="Delete User">
+               </command>
+               <command
+                       defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
             id="org.argeo.security.ui.admin.userBatchUpdate"
             name="User batch update">
+               </command>
+               <!-- Group CRUD -->
+               <command
+                       id="org.argeo.security.ui.admin.newGroup"
+                       defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+            name="New Group">
+               </command>
+               <command
+            id="org.argeo.security.ui.admin.deleteGroups"
+                       defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+            name="Delete Group">
+               </command>
+               <!-- Transaction -->
+               <command
+                   id="org.argeo.security.ui.admin.userTransactionHandler"
+            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+               name="Manage a user transaction">
+                       <commandParameter
+                                       id="param.commandId"
+                                       name="begin, commit or rollback">
+                       </commandParameter>
+               </command>
+
+         <!-- Force the refresh when the various listener are not enough -->
+      <command
+            defaultHandler="org.argeo.security.ui.admin.internal.commands.ForceRefresh"
+            id="org.argeo.security.ui.admin.forceRefresh"
+            name="Force Refresh">
       </command>
-    </extension>
-     <extension
-         point="org.eclipse.ui.menus">
-       <menuContribution
-            locationURI="toolbar:org.argeo.security.ui.admin.adminRolesView">
+       </extension>
+       
+       <!-- MENU CONTRIBUTIONS -->
+       <extension
+               point="org.eclipse.ui.menus">
+               <menuContribution
+                       locationURI="toolbar:org.argeo.security.ui.rap.userToolbar?after=org.eclipse.ui.file.saveAll"> 
+                       <!-- Transaction management --> 
+                       <command
+                               commandId="org.argeo.security.ui.admin.userTransactionHandler"
+                               icon="icons/commit.gif"
+                               label="Commit Transaction"
+                               style="push"
+                               tooltip="Commit a user transaction">
+                               <parameter name="param.commandId" value="transaction.commit" />
+                               <visibleWhen>
+                                       <with variable="org.argeo.security.ui.admin.userTransactionState">
+                                               <equals value="status.active" />
+                                       </with>
+                               </visibleWhen>
+                       </command>
+                       <command
+                               commandId="org.argeo.security.ui.admin.userTransactionHandler"
+                               icon="icons/rollback.gif"
+                               label="Rollback Transaction"
+                               style="push"
+                               tooltip="Abandon current changes and rollback to the latest commited version">
+                               <parameter name="param.commandId" value="transaction.rollback" />
+                               <visibleWhen>
+                                       <with variable="org.argeo.security.ui.admin.userTransactionState">
+                                                       <equals value="status.active" />
+                                       </with>
+                               </visibleWhen>
+                       </command>
+               </menuContribution>
+    
+       <!-- UsersView specific toolbar menu -->
+               <menuContribution
+            locationURI="toolbar:org.argeo.security.ui.admin.usersView">
             <command
-                  commandId="org.argeo.security.ui.admin.deleteRole"
+                  commandId="org.argeo.security.ui.admin.deleteUsers"
                   icon="icons/remove.gif"
-                  label="Delete Role"
-                  tooltip="Delete selected roles">
-            </command>
-            <command
-                  commandId="org.argeo.security.ui.admin.addRole"
-                  icon="icons/add.gif"
-                  label="Add Role"
-                  tooltip="Add new role">
-            </command>
-            <command
-                  commandId="org.argeo.security.ui.admin.refreshRoles"
-                  icon="icons/sync.gif"
-                  label="LDAP Roles Sync"
-                  tooltip="Synchronize roles from LDAP">
+                  label="Delete User"
+                  tooltip="Delete selected users">
             </command>
-        </menuContribution>
-       <menuContribution
-            locationURI="toolbar:org.argeo.security.ui.admin.adminUsersView">
             <command
-                  commandId="org.argeo.security.ui.admin.refreshUsersList"
+                  commandId="org.argeo.security.ui.admin.forceRefresh"
                   icon="icons/refresh.png"
                   label="Refresh list"
                   tooltip="Force the full refresh of the user list">
             </command>
-            <command
-                  commandId="org.argeo.security.ui.admin.deleteUser"
-                  icon="icons/remove.gif"
-                  label="Delete User"
-                  tooltip="Delete selected users">
-            </command>
             <command
                   commandId="org.argeo.security.ui.admin.newUser"
                   icon="icons/add.gif"
                   label="Add User"
-                  tooltip="Add new user">
+                  tooltip="Create a new user">
             </command>
             <command
                   commandId="org.argeo.security.ui.admin.userBatchUpdate"
                   label="Update users"
                   tooltip="Perform maintenance activities on a list of chosen users">
             </command>
+        </menuContribution>
+
+       <!-- GroupsView specific toolbar menu -->
+        <menuContribution
+            locationURI="toolbar:org.argeo.security.ui.admin.groupsView">
+            <command
+                  commandId="org.argeo.security.ui.admin.deleteGroups"
+                  icon="icons/remove.gif"
+                  label="Delete Group"
+                  tooltip="Delete selected groups">
+            </command>
             <command
-                  commandId="org.argeo.security.ui.admin.refreshUsersList"
-                  icon="icons/sync.gif"
-                  label="LDAP Users Sync"
-                  tooltip="Synchronize users from LDAP">
+                  commandId="org.argeo.security.ui.admin.forceRefresh"
+                  icon="icons/refresh.png"
+                  label="Refresh list"
+                  tooltip="Force the full refresh of the group list">
+            </command>
+            <command
+                  commandId="org.argeo.security.ui.admin.newGroup"
+                  icon="icons/add.gif"
+                  label="Add Group"
+                  tooltip="Create a new group">
             </command>
         </menuContribution>
-  </extension>
-  <extension
-           point="org.eclipse.ui.activities">
-        <!-- TODO: find a way to exclude evrything -->
-        <activityPatternBinding
-              activityId="org.argeo.security.ui.adminActivity"
-              isEqualityPattern="true"
-              pattern="org.argeo.security.ui.admin/org.argeo.security.ui.admin.adminSecurityPerspective">
-        </activityPatternBinding>
-     </extension>
- </plugin>
+         
+               <!--            <menuContribution
+            locationURI="toolbar:org.argeo.security.ui.admin.adminRolesView">
+            <command
+                  commandId="org.argeo.security.ui.admin.refreshRoles"
+                  icon="icons/sync.gif"
+                  label="LDAP Roles Sync"
+                  tooltip="Synchronize roles from LDAP">
+            </command>
+        </menuContribution> -->
+       </extension>
+
+       <!-- SERVICES -->
+       <extension
+       point="org.eclipse.ui.services">
+        <sourceProvider
+               id="org.argeo.security.ui.admin.userTransactionProvider"
+            provider="org.argeo.eclipse.spring.SpringExtensionFactory" >
+                       <variable
+                   name="org.argeo.security.ui.admin.userTransactionState"
+                   priorityLevel="workbench">
+               </variable>
+               </sourceProvider>
+       </extension>
+  
+       <!-- ACTIVITIES -->
+       <extension
+               point="org.eclipse.ui.activities">
+               <!-- group admin is intended to make all user and group maintenance operations -->
+               <!--<activityPatternBinding
+                       activityId="org.argeo.security.ui.userAdminActivity"
+                       isEqualityPattern="true"
+                       pattern="org.argeo.security.ui.admin/org.argeo.security.ui.admin.adminSecurityPerspective">
+               </activityPatternBinding>-->
+               <activityPatternBinding
+                       activityId="org.argeo.security.ui.groupAdminActivity"
+                       isEqualityPattern="true"
+                       pattern="org.argeo.security.ui.admin/org.argeo.security.ui.admin.adminSecurityPerspective">
+               </activityPatternBinding>
+       </extension>
+       
+       <!-- STARTUP  --> 
+       <extension point="org.eclipse.ui.startup">
+               <startup class="org.argeo.security.ui.admin.internal.PartStateChanged"/>
+       </extension>
+</plugin>
\ No newline at end of file