components/visual-panels/usermgr/src/java/vpanels/app/usermgr/com/oracle/solaris/vp/panels/usermgr/client/swing/UserMgrPanelDescriptor.java
branchs11-update
changeset 2805 4888f6212f94
parent 894 8e0753ec3941
child 3038 1a97ff5e830d
--- a/components/visual-panels/usermgr/src/java/vpanels/app/usermgr/com/oracle/solaris/vp/panels/usermgr/client/swing/UserMgrPanelDescriptor.java	Mon Oct 28 17:52:58 2013 -0700
+++ b/components/visual-panels/usermgr/src/java/vpanels/app/usermgr/com/oracle/solaris/vp/panels/usermgr/client/swing/UserMgrPanelDescriptor.java	Wed Oct 30 16:53:48 2013 -0400
@@ -20,20 +20,20 @@
  */
 
 /*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
  */
 
 package com.oracle.solaris.vp.panels.usermgr.client.swing;
 
 import java.util.*;
 import java.util.logging.Level;
-import javax.management.ObjectName;
 import javax.swing.Icon;
-import com.oracle.solaris.adr.Stability;
-import com.oracle.solaris.rad.ObjectException;
+import com.oracle.solaris.rad.client.ADRUinteger;
+import com.oracle.solaris.rad.client.ADRName;
+import com.oracle.solaris.rad.client.RadObjectException;
+import com.oracle.solaris.rad.client.RadPrivilegeException;
 import com.oracle.solaris.vp.panel.common.*;
 import com.oracle.solaris.vp.panel.common.action.*;
-import com.oracle.solaris.vp.panel.common.api.panel.MBeanUtil;
 import com.oracle.solaris.vp.panel.common.control.*;
 import com.oracle.solaris.vp.panel.common.model.*;
 import com.oracle.solaris.vp.panel.swing.control.PanelFrameControl;
@@ -53,12 +53,6 @@
     // Static data
     //
 
-    // Constants needed for registering the MBean
-    public static final String INTERFACE_NAME =
-    	"com.oracle.solaris.rad.usermgr";
-    public static final ObjectName OBJECT_NAME =
-        MBeanUtil.makeObjectName(INTERFACE_NAME, "UserMgr");
-
     public static final String USER_TYPE_NORMAL = "normal";
     public static final String SCOPE_FILES = "files";
     public static final String MATCH_ALL = "";
@@ -74,7 +68,7 @@
 
     private MainControl mc;
     private DefaultControl control;
-    private MXBeanTracker<UserMgrMXBean> beanTracker;
+    private BeanTracker<UserMgr> beanTracker;
     private UserType uType;
 
     private String scopeStr = SCOPE_FILES;
@@ -86,6 +80,7 @@
     private List<String> shellList = null;
     private List<Group> groupList = null;
     private List<String> profileList = null;
+    private List<String> authProfileList = null;
     private List<String> authList = null;
     private List<String> roleList = null;
     private List<String> supplgroups = null;
@@ -111,8 +106,8 @@
 
         super(id, context);
 
-	beanTracker = new MXBeanTracker<UserMgrMXBean>(
-	    OBJECT_NAME, UserMgrMXBean.class, Stability.PRIVATE, context);
+	beanTracker = new BeanTracker<UserMgr>((new UserMgr()).getName(),
+	    UserMgr.class, context);
 
 	setComparator(SimpleHasId.COMPARATOR);
 
@@ -201,7 +196,7 @@
 	aggregator.reset();
     }
 
-    public UserMgrMXBean getUserMgrBean() {
+    public UserMgr getUserMgrBean() {
         return beanTracker.getBean();
     }
 
@@ -236,10 +231,10 @@
 	try {
 	    getUserMgrBean().deleteUser(umo.getName());
 	    deleteUserManagedObject(umo);
-	} catch (SecurityException se) {
+	} catch (RadPrivilegeException se) {
 	    throw new ActionUnauthorizedException(se);
-	} catch (ObjectException e) {
-	    UserMgrError ume = e.getPayload(UserMgrError.class);
+	} catch (RadObjectException e) {
+	    UserMgrError ume = (UserMgrError)e.getPayload();
 	    String msg = Finder.getString("usermgr.error.invalidData");
 	    String err = Finder.getString(
 		"usermgr.error.delete", umo.getUsername());
@@ -260,16 +255,16 @@
 	ActionFailedException, ActionUnauthorizedException {
 
 	try {
-	    char[] password = umo.getPassword();
-	    User user = getUserMgrBean().addUser(umo.getNewUser(), password);
+	    String password = umo.getPassword();
+	    User newUser = umo.getNewUser();
+	    User user = getUserMgrBean().addUser(newUser, password);
 	    addUserManagedObject(umo);
-	    Arrays.fill(password, (char)0);
+	    password = null;
 	    umo.updateUser(user);
-
-	} catch (SecurityException se) {
+	} catch (RadPrivilegeException se) {
 	    throw new ActionUnauthorizedException(se);
-	} catch (ObjectException e) {
-		UserMgrError ume = e.getPayload(UserMgrError.class);
+	} catch (RadObjectException e) {
+		UserMgrError ume = (UserMgrError)e.getPayload();
 		String msg;
 		UserMgrErrorType error = (ume != null) ?
 		    ume.getErrorCode() : UserMgrErrorType.INVALIDDATA;
@@ -301,7 +296,6 @@
 
     public void saveModifiedUsers() throws ActionAbortedException,
 	ActionFailedException, ActionUnauthorizedException {
-
 	List<UserManagedObject> kids = getChildren();
 	for (UserManagedObject umo : kids) {
 	    if (umo.getChangeableAggregator().isChanged()) {
@@ -309,17 +303,16 @@
 		UserChangeFields changes = umo.getModifiedChanges();
 		try {
 		    if (user != null) {
-			char[] password = null;
+			String password = null;
 			if (umo.getPassProperty().isChanged())
 			    password = umo.getPassword();
-			getUserMgrBean().modifyUser(user, password, changes);
-			if (password != null)
-			    Arrays.fill(password, (char)0);
+			getUserMgrBean().modifyUser(user, changes, password);
+			password = null;
 		    }
-		} catch (SecurityException se) {
+		} catch (RadPrivilegeException se) {
 		    throw new ActionUnauthorizedException(se);
-		} catch (ObjectException e) {
-		    UserMgrError ume = e.getPayload(UserMgrError.class);
+		} catch (RadObjectException e) {
+		    UserMgrError ume = (UserMgrError)e.getPayload();
 		    String msg;
 		    UserMgrErrorType error = (ume != null) ?
 			ume.getErrorCode() : UserMgrErrorType.INVALIDDATA;
@@ -376,18 +369,22 @@
         return roleList;
     }
 
-    public UserImpl getDefaultUser() {
-	UserImpl defaultUser = new UserImpl(
-		"", 0L, defUser.getGroupID(),
+    public User getDefaultUser() {
+	User defaultUser = new User(
+		"", new ADRUinteger(0L), defUser.getGroupID(),
 		"", "", defUser.getDefaultShell(),
 		0, 0, 0, 0,
 		"", "", "", "", "", "",
 		"", "", "", "", "", "",
-		null, null, null, null, null, null);
+		null, null, null, null, null, null, null);
 
         return defaultUser;
     }
 
+    public ADRUinteger getDefaultGroupID() {
+	    return defUser.getGroupID();
+    }
+
     public void initUsers(String scopeStr,
     		String typeStr, String matchStr)
 		throws ActionFailedException {
@@ -395,8 +392,6 @@
 	String statusStr;
 	String listTitle;
 
-
-
 	statusStr = Finder.getString("usermgr.status.scope") +
 	    " " + scopeStr;
 	if (typeStr.equals(USER_TYPE_NORMAL)) {
@@ -407,10 +402,9 @@
 	    listTitle = Finder.getString("usermgr.list.title.role");
 	}
 
-
 	removeAllChildren();
 	try {
-	    UserMgrMXBean bean = getUserMgrBean();
+	    UserMgr bean = getUserMgrBean();
 
 	    // Set scope only if the scope changed
 	    if (scopeStr.equals(this.scopeStr) == false) {
@@ -537,7 +531,7 @@
 
 	try {
 	    user = getUserMgrBean().getUser(name);
-        } catch (ObjectException e) {
+        } catch (RadObjectException e) {
             getLog().log(Level.SEVERE, "Error getting user " +
 		name + " : ", e);
 	}
@@ -554,7 +548,7 @@
 	List<User> users = null;
 	try {
 	    users = getUserMgrBean().getusers();
-        } catch (ObjectException e) {
+        } catch (RadObjectException e) {
             getLog().log(Level.SEVERE, "Error getting user list.", e);
 	}
 	return users;