Improve security UI
[lgpl/argeo-commons.git] / security / eclipse / plugins / org.argeo.security.ui / src / main / java / org / argeo / security / ui / SecurityUiPlugin.java
index 5e165ad4f4726a21fd8793ab1ccfaec3631e2f60..971affa4b62366a42fa2c86447e44fa3e019dedb 100644 (file)
@@ -1,5 +1,10 @@
 package org.argeo.security.ui;
 
+import org.argeo.ArgeoException;
+import org.argeo.security.ArgeoUser;
+import org.argeo.security.UserNature;
+import org.argeo.security.nature.SimpleUserNature;
+import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 
@@ -13,7 +18,7 @@ public class SecurityUiPlugin extends AbstractUIPlugin {
 
        // The shared instance
        private static SecurityUiPlugin plugin;
-       
+
        /**
         * The constructor
         */
@@ -22,7 +27,10 @@ public class SecurityUiPlugin extends AbstractUIPlugin {
 
        /*
         * (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+        * 
+        * @see
+        * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+        * )
         */
        public void start(BundleContext context) throws Exception {
                super.start(context);
@@ -31,7 +39,10 @@ public class SecurityUiPlugin extends AbstractUIPlugin {
 
        /*
         * (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+        * 
+        * @see
+        * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+        * )
         */
        public void stop(BundleContext context) throws Exception {
                plugin = null;
@@ -40,11 +51,33 @@ public class SecurityUiPlugin extends AbstractUIPlugin {
 
        /**
         * Returns the shared instance
-        *
+        * 
         * @return the shared instance
         */
        public static SecurityUiPlugin getDefault() {
                return plugin;
        }
 
+       public static ImageDescriptor getImageDescriptor(String path) {
+               return imageDescriptorFromPlugin(PLUGIN_ID, path);
+       }
+
+       /*
+        * SECURITY UTILITIES
+        */
+       public final static SimpleUserNature findSimpleUserNature(ArgeoUser user,
+                       String simpleNatureType) {
+               SimpleUserNature simpleNature = null;
+               if (simpleNatureType != null)
+                       simpleNature = (SimpleUserNature) user.getUserNatures().get(
+                                       simpleNatureType);
+               else
+                       for (UserNature userNature : user.getUserNatures().values())
+                               if (userNature instanceof SimpleUserNature)
+                                       simpleNature = (SimpleUserNature) userNature;
+
+               if (simpleNature == null)
+                       throw new ArgeoException("No simple user nature in user " + user);
+               return simpleNature;
+       }
 }