Introduce user admin UI
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 17 Mar 2011 12:07:05 +0000 (12:07 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 17 Mar 2011 12:07:05 +0000 (12:07 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@4306 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

security/plugins/org.argeo.security.ui.useradmin/.classpath [new file with mode: 0644]
security/plugins/org.argeo.security.ui.useradmin/.project [new file with mode: 0644]
security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/commands.xml [new file with mode: 0644]
security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/editors.xml [new file with mode: 0644]
security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/osgi.xml [new file with mode: 0644]
security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/views.xml [new file with mode: 0644]
security/plugins/org.argeo.security.ui.useradmin/plugin.xml [new file with mode: 0644]
security/plugins/org.argeo.security.ui.useradmin/pom.xml [new file with mode: 0644]

diff --git a/security/plugins/org.argeo.security.ui.useradmin/.classpath b/security/plugins/org.argeo.security.ui.useradmin/.classpath
new file mode 100644 (file)
index 0000000..92f19d2
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="src" path="src/main/java"/>
+       <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/security/plugins/org.argeo.security.ui.useradmin/.project b/security/plugins/org.argeo.security.ui.useradmin/.project
new file mode 100644 (file)
index 0000000..6dbe09b
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.argeo.security.ui.useradmin</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
diff --git a/security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/commands.xml b/security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/commands.xml
new file mode 100644 (file)
index 0000000..f2009b9
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+        http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="openArgeoUserEditor" class="org.argeo.security.ui.commands.OpenArgeoUserEditor"
+               scope="prototype" />
+       <bean id="newArgeoUserEditor" class="org.argeo.security.ui.commands.OpenArgeoUserEditor"
+               scope="prototype" />
+       <bean id="addRole" class="org.argeo.security.ui.commands.AddRole"
+               scope="prototype">
+               <property name="securityService" ref="securityService" />
+       </bean>
+       <bean id="openChangePasswordDialog" class="org.argeo.security.ui.commands.OpenChangePasswordDialog"
+               scope="prototype">
+               <property name="securityService" ref="securityService" />
+       </bean>
+       <bean id="refreshUsersList" class="org.argeo.security.ui.commands.RefreshUsersList"
+               scope="prototype" />
+</beans>
diff --git a/security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/editors.xml b/security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/editors.xml
new file mode 100644 (file)
index 0000000..bd01515
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+        http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <!-- Editors -->
+       <bean id="adminArgeoUserEditor" class="org.argeo.security.ui.editors.ArgeoUserEditor"
+               scope="prototype">
+               <property name="securityService" ref="securityService" />
+       </bean>
+</beans>
diff --git a/security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/osgi.xml b/security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/osgi.xml
new file mode 100644 (file)
index 0000000..6574cf1
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
+       xmlns:osgi="http://www.springframework.org/schema/osgi"\r
+       xsi:schemaLocation="http://www.springframework.org/schema/osgi  \r
+       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
+       http://www.springframework.org/schema/beans   \r
+       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"\r
+       osgi:default-timeout="30000">\r
+\r
+       <reference id="securityService" interface="org.argeo.security.ArgeoSecurityService" />\r
+</beans:beans>
\ No newline at end of file
diff --git a/security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/views.xml b/security/plugins/org.argeo.security.ui.useradmin/META-INF/spring/views.xml
new file mode 100644 (file)
index 0000000..cdc214f
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+        http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="adminUsersView" class="org.argeo.security.ui.views.UsersView"
+               scope="prototype">
+               <property name="securityService" ref="securityService" />
+       </bean>
+       <bean id="adminRolesView" class="org.argeo.security.ui.views.RolesView"
+               scope="prototype">
+               <property name="securityService" ref="securityService" />
+       </bean>
+</beans>
diff --git a/security/plugins/org.argeo.security.ui.useradmin/plugin.xml b/security/plugins/org.argeo.security.ui.useradmin/plugin.xml
new file mode 100644 (file)
index 0000000..0a78645
--- /dev/null
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.ui.perspectives">
+      <perspective
+            class="org.argeo.security.ui.SecurityPerspective"
+            icon="icons/security.gif"
+            id="org.argeo.security.ui.adminSecurityPerspective"
+            name="Security">
+      </perspective>
+   </extension>
+   <extension
+         point="org.eclipse.ui.views">
+      <view
+            class="org.argeo.eclipse.spring.SpringExtensionFactory"
+            icon="icons/users.gif"
+            id="org.argeo.security.ui.adminUsersView"
+            name="Users"
+            restorable="false">
+      </view>
+      <view
+            class="org.argeo.eclipse.spring.SpringExtensionFactory"
+            icon="icons/role.gif"
+            id="org.argeo.security.ui.adminRolesView"
+            name="Roles"
+            restorable="false">
+      </view>
+   </extension>
+   
+   <!-- Security -->
+   <extension
+         id="defaultLoginDialog"
+         name="Default Login Dialog"
+         point="org.eclipse.equinox.security.callbackHandler">
+      <callbackHandler
+            class="org.argeo.security.ui.dialogs.DefaultLoginDialog">
+      </callbackHandler>
+   </extension>
+   <extension
+         point="org.eclipse.equinox.security.callbackHandlerMapping">
+      <callbackHandlerMapping
+            callbackHandlerId="org.argeo.security.ui.defaultLoginDialog"
+            configName="SPRING">
+      </callbackHandlerMapping>
+   </extension>
+   <extension
+         point="org.eclipse.equinox.security.callbackHandlerMapping">
+         <callbackHandlerMapping
+            callbackHandlerId="org.argeo.security.ui.defaultLoginDialog"
+            configName="UNIX">
+      </callbackHandlerMapping>
+   </extension>
+   <extension
+         point="org.eclipse.equinox.security.callbackHandlerMapping">
+      <callbackHandlerMapping
+            callbackHandlerId="org.argeo.security.ui.defaultLoginDialog"
+            configName="SPRING_SECURITY_CONTEXT">
+      </callbackHandlerMapping>
+   </extension>
+   <extension
+           point="org.eclipse.ui.editors">
+               <editor
+                 class="org.argeo.eclipse.spring.SpringExtensionFactory"
+              id="org.argeo.security.ui.adminArgeoUserEditor"
+              name="User"
+              icon="icons/user.gif"
+              default="false">
+        </editor>
+     </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+            id="org.argeo.security.ui.openArgeoUserEditor"
+            name="OpenArgeoUserEditor">
+                       <commandParameter
+                       id="org.argeo.security.ui.username"
+                       name="Username">
+                       </commandParameter>
+      </command>
+      <command
+            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+            id="org.argeo.security.ui.newArgeoUserEditor"
+            name="OpenArgeoUserEditor">
+      </command>
+      <command
+            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+            id="org.argeo.security.ui.addRole"
+            name="AddRole">
+      </command>
+      <command
+            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+            id="org.argeo.security.ui.openChangePasswordDialog"
+            name="OpenChangePasswordDialog">
+      </command>
+      <command
+            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+            id="org.argeo.security.ui.refreshUsersList"
+            name="refreshUsersList">
+      </command>
+    </extension>
+     <extension
+         point="org.eclipse.ui.menus">
+       <menuContribution
+            locationURI="toolbar:org.argeo.security.ui.rolesView">
+            <command
+                  commandId="org.argeo.security.ui.addRole"
+                  icon="icons/add.gif"
+                  label="Add Role"
+                  tooltip="Add new role">
+            </command>
+        </menuContribution>
+       <menuContribution
+            locationURI="toolbar:org.argeo.security.ui.usersView">
+            <command
+                  commandId="org.argeo.security.ui.newArgeoUserEditor"
+                  icon="icons/add.gif"
+                  label="Add User"
+                  tooltip="Add new user">
+            </command>
+            <command
+                  commandId="org.argeo.security.ui.refreshUsersList"
+                  icon="icons/refresh.png"
+                  label="Refresh"
+                  tooltip="Refresh user list">
+            </command>
+        </menuContribution>
+        <menuContribution
+                locationURI="menu:file?after=additions">
+                <command
+                      commandId="org.argeo.security.ui.openChangePasswordDialog"
+                      icon="icons/password.gif"
+                      label="Change password"
+                      style="push"
+                      tooltip="Change password">
+                </command>
+          </menuContribution>
+  </extension>
+     <extension
+           id="product"
+           point="org.eclipse.core.runtime.products">
+        <product
+              application="org.argeo.security.ui.application.secureUi"
+              name="Agfa Sebi">
+           <property
+                 name="appName"
+                 value="Agfa Sebi">
+           </property>
+        </product>
+     </extension>
+     <extension
+           point="org.eclipse.ui.services">
+        <sourceProvider
+              provider="org.argeo.security.ui.RolesSourceProvider">
+           <variable
+                 name="org.argeo.security.ui.rolesVariable"
+                 priorityLevel="workbench">
+           </variable>
+        </sourceProvider>
+     </extension>
+     <extension
+           point="org.eclipse.ui.activities">
+        <activity
+              description="Only for admins"
+              id="org.argeo.security.ui.adminActivity"
+              name="Admin">
+                 <enabledWhen>
+                   <with variable="roles">
+                     <iterate ifEmpty="false" operator="or">
+                       <equals value="ROLE_ADMIN" />
+                     </iterate>
+                   </with>
+                 </enabledWhen>
+        </activity>
+        <activityPatternBinding
+              activityId="org.argeo.security.ui.adminActivity"
+              isEqualityPattern="true"
+              pattern="org.argeo.security.ui/.*admin.*">
+        </activityPatternBinding>
+     </extension>
+ </plugin>
diff --git a/security/plugins/org.argeo.security.ui.useradmin/pom.xml b/security/plugins/org.argeo.security.ui.useradmin/pom.xml
new file mode 100644 (file)
index 0000000..16c958b
--- /dev/null
@@ -0,0 +1,117 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.commons.security</groupId>
+               <version>0.2.3-SNAPSHOT</version>
+               <artifactId>plugins</artifactId>
+               <relativePath>..</relativePath>
+       </parent>
+       <artifactId>org.argeo.security.ui.useradmin</artifactId>
+       <name>Commons Security User Admin UI</name>
+       <packaging>jar</packaging>
+       <build>
+               <plugins>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-compiler-plugin</artifactId>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-source-plugin</artifactId>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-jar-plugin</artifactId>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.felix</groupId>
+                               <artifactId>maven-bundle-plugin</artifactId>
+                               <version>${version.maven-bundle-plugin}</version>
+                               <configuration>
+                                       <!-- <instructions> -->
+                                       <!-- <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy> -->
+                                       <!-- <Bundle-Activator>org.argeo.security.ui.SecurityUiPlugin</Bundle-Activator> -->
+                                       <!-- <Require-Bundle>org.eclipse.ui;resolution:=optional,org.eclipse.rap.ui;resolution:=optional,org.eclipse.core.runtime</Require-Bundle> -->
+                                       <!-- <Import-Package> -->
+                                       <!-- org.argeo.eclipse.spring, -->
+                                       <!-- org.osgi.framework;version="0.0.0", -->
+                                       <!-- !org.eclipse.core.runtime, -->
+                                       <!-- !org.eclipse.core.commands, -->
+                                       <!-- !org.eclipse.ui.plugin, -->
+                                       <!-- !org.eclipse.ui, -->
+                                       <!-- !org.eclipse.ui.commands, -->
+                                       <!-- !org.eclipse.ui.handlers, -->
+                                       <!-- !org.eclipse.ui.part, -->
+                                       <!-- * -->
+                                       <!-- </Import-Package> -->
+                                       <!-- <Private-Package>icons</Private-Package> -->
+                                       <!-- <Export-Package>org.argeo.security.ui.*</Export-Package> -->
+                                       <!-- </instructions> -->
+                                       <instructions>
+                                               <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy>
+                                               <Bundle-Activator>org.argeo.security.ui.SecurityUiPlugin</Bundle-Activator>
+                                               <Require-Bundle>org.eclipse.ui;resolution:=optional,org.eclipse.rap.ui;resolution:=optional,org.eclipse.core.runtime</Require-Bundle>
+                                               <Import-Package>
+                                                       org.argeo.eclipse.spring,
+                                                       *
+                                               </Import-Package>
+                                               <Export-Package>
+                                                       !org.argeo.security.ui.internal.*,
+                                                       org.argeo.security.ui.*
+                                               </Export-Package>
+                                       </instructions>
+                               </configuration>
+                       </plugin>
+               </plugins>
+       </build>
+       <dependencies>
+               <!-- Argeo Security -->
+               <dependency>
+                       <groupId>org.argeo.commons.security</groupId>
+                       <artifactId>org.argeo.security.core</artifactId>
+                       <version>0.2.3-SNAPSHOT</version>
+               </dependency>
+
+               <!-- Argeo Eclipse -->
+               <dependency>
+                       <groupId>org.argeo.commons.eclipse</groupId>
+                       <artifactId>org.argeo.eclipse.ui</artifactId>
+                       <version>0.2.3-SNAPSHOT</version>
+               </dependency>
+
+               <!-- Argeo Eclipse distribution (common dependencies for both RAP and RCP) -->
+               <dependency>
+                       <groupId>org.argeo.commons.eclipse</groupId>
+                       <artifactId>org.argeo.eclipse.dep.common</artifactId>
+                       <version>0.2.3-SNAPSHOT</version>
+               </dependency>
+
+               <!-- RCP only dependency, needed at compile time -->
+               <dependency>
+                       <groupId>org.argeo.commons.eclipse</groupId>
+                       <artifactId>org.argeo.eclipse.dep.rcp</artifactId>
+                       <version>0.2.3-SNAPSHOT</version>
+                       <scope>provided</scope>
+               </dependency>
+
+               <!-- Commons -->
+               <dependency>
+                       <groupId>org.argeo.commons.basic</groupId>
+                       <artifactId>org.argeo.basic.nodeps</artifactId>
+                       <version>0.2.3-SNAPSHOT</version>
+               </dependency>
+
+               <!-- Spring -->
+               <dependency>
+                       <groupId>org.springframework.security</groupId>
+                       <artifactId>org.springframework.security.core</artifactId>
+               </dependency>
+
+               <!-- Others -->
+               <dependency>
+                       <groupId>org.slf4j</groupId>
+                       <artifactId>com.springsource.slf4j.org.apache.commons.logging</artifactId>
+               </dependency>
+       </dependencies>
+</project>