--- 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;