📄 cmsadminusers.java
字号:
if(email.equals("") || userLastname.equals("")
|| user.equals("")) {
throw new CmsLegacyException("user data missing",
CmsLegacyException.C_NO_USER);
}
if(!pwd.equals(pwd2)) {
throw new CmsLegacyException("unequal passwords",
CmsLegacyException.C_SECURITY_INVALID_PASSWORD);
}
// check the password
cms.validatePassword(pwd);
Hashtable additionalInfo = new Hashtable();
// additionalInfo.put(C_ADDITIONAL_INFO_ZIPCODE, zipcode);
// additionalInfo.put(C_ADDITIONAL_INFO_TOWN, town);
CmsUser newUser = cms.createUser(user, pwd, desc, additionalInfo);
newUser.setEmail(email);
newUser.setFirstname(firstname);
newUser.setLastname(userLastname);
newUser.setAddress(street);
newUser.setAdditionalInfo(CmsUserSettings.ADDITIONAL_INFO_ZIPCODE, zipcode);
newUser.setAdditionalInfo(CmsUserSettings.ADDITIONAL_INFO_CITY, town);
newUser.setAdditionalInfo(CmsUserSettings.ADDITIONAL_INFO_DEFAULTGROUP, defaultGroup);
for(int z = 0;z < selectedGroups.size();z++) {
String groupname = (String)selectedGroups.elementAt(z);
cms.addUserToGroup(user, groupname);
}
cms.writeUser(newUser); // update in the database
session.removeValue("selectedGroups");
session.removeValue("notSelectedGroups");
session.removeValue("ERROR");
templateSelector = ""; //successful
}catch(CmsException e) {
// save the form data in the session, so it can be displayed again later
session.putValue("ERROR", new String("yes")); // remeber that an error has occurred
session.putValue("USERFIRSTNAME", firstname);
session.putValue("USERDESC", desc);
session.putValue("USERSTREET", street);
session.putValue("PWD", pwd);
session.putValue("PWD2", pwd2);
session.putValue("USER", user);
session.putValue("USERNAME", userLastname);
session.putValue("ZIP", zipcode);
session.putValue("TOWN", town);
session.putValue("USEREMAIL", email);
session.putValue("DEFAULTGROUP", defaultGroup);
if ((e instanceof CmsLegacySecurityException) && (((CmsLegacySecurityException)e).getType() == CmsLegacySecurityException.C_SECURITY_INVALID_PASSWORD)) {
if(e.getMessage().equals("unequal passwords")) {
templateSelector = "passworderror1";
}else {
if(e.getMessage().equals("password too short")) {
templateSelector = "passworderror2";
}else {
xmlTemplateDocument.setData("reasonOfError", e.getMessage());
xmlTemplateDocument.setData("perspective", "newuser");
templateSelector = "passworderror5";
}
}
}else {
if ((e instanceof CmsLegacyException) && (((CmsLegacyException)e).getType() == CmsLegacyException.C_NO_GROUP)) {
templateSelector = "errornogroup1";
}else {
if ((e instanceof CmsLegacyException) && (((CmsLegacyException)e).getType() == CmsLegacyException.C_NOT_FOUND && e.getMessage().equals("user data missing"))) {
templateSelector = "errordatamissing1";
}else {
// unknown error
xmlTemplateDocument.setData("details", CmsException.getStackTraceAsString(e));
templateSelector = "error";
}
}
}
} // catch block
} // OK
}
}
}else {
// input is the form for changing the user data
templateSelector = "changeuser";
boolean disabled = false;
if(!userYetChanged) {
// form visited for the first time, not yet changed
// read the data from the user object
CmsUser theUser = cms.readUser(user);
if(theUser == null) {
throw new CmsLegacyException("user does not exist");
}
firstname = theUser.getFirstname();
desc = theUser.getDescription();
street = theUser.getAddress();
userLastname = theUser.getLastname();
email = theUser.getEmail();
disabled = !theUser.isEnabled();
zipcode = (String)theUser.getAdditionalInfo(CmsUserSettings.ADDITIONAL_INFO_ZIPCODE);
town = (String)theUser.getAdditionalInfo(CmsUserSettings.ADDITIONAL_INFO_CITY);
defaultGroup = (String)theUser.getAdditionalInfo(CmsUserSettings.ADDITIONAL_INFO_DEFAULTGROUP);
List groups = cms.getDirectGroupsOfUser(user);
if(groups != null) {
selectedGroups = new Vector();
for(int z = 0;z < groups.size();z++) {
selectedGroups.addElement(((CmsGroup)groups.get(z)).getName());
}
}else {
throw new CmsLegacyException(CmsLegacyException.C_NO_GROUP);
}
groups = cms.getGroups();
if(groups != null) {
notSelectedGroups = new Vector();
for(int z = 0;z < groups.size();z++) {
String name = ((CmsGroup)groups.get(z)).getName();
if(!selectedGroups.contains(name)) {
notSelectedGroups.addElement(name);
}
}
}
}else {
// fetch data from the form
if((String)parameters.get("LOCK") != null) {
disabled = true;
}
if(CmsXmlTemplateLoader.getRequest(reqCont).getParameter("ADD") != null) {
// add a new group to selectedGroups
String groupname = (String)parameters.get("notselectgroup");
if(groupname != null) {
if(!selectedGroups.contains(groupname)){
selectedGroups.addElement(groupname);
}
notSelectedGroups.removeElement(groupname);
}
}else {
if(CmsXmlTemplateLoader.getRequest(reqCont).getParameter("REMOVE") != null) {
// delete a group from selectedGroups
// and move it to notSelectedGroups
String groupname = (String)parameters.get("selectgroup");
if(groupname != null) {
if(!notSelectedGroups.contains(groupname)){
notSelectedGroups.addElement(groupname);
if(groupname.equals(defaultGroup)) {
defaultGroup = "";
}
}
selectedGroups.removeElement(groupname);
}
}else {
if(CmsXmlTemplateLoader.getRequest(reqCont).getParameter("OK") != null) {
// form submitted, try to change the user data
try {
if(email.equals("") || userLastname.equals("")
|| user.equals("")) {
throw new CmsLegacyException("user data missing",
CmsLegacyException.C_NO_USER);
}
if(!pwd.equals(pwd2)) {
throw new CmsLegacySecurityException("unequal passwords",
CmsLegacySecurityException.C_SECURITY_INVALID_PASSWORD);
}
if(!pwd.equals("")) {
cms.setPassword(user, pwd);
} // if nothing is entered don't change the password
CmsUser theUser = cms.readUser(user);
theUser.setEmail(email);
theUser.setDescription(desc);
theUser.setFirstname(firstname);
theUser.setLastname(userLastname);
theUser.setAddress(street);
theUser.setAdditionalInfo(CmsUserSettings.ADDITIONAL_INFO_ZIPCODE, zipcode);
theUser.setAdditionalInfo(CmsUserSettings.ADDITIONAL_INFO_CITY, town);
theUser.setAdditionalInfo(CmsUserSettings.ADDITIONAL_INFO_DEFAULTGROUP, defaultGroup);
if((OpenCms.getDefaultUsers().getUserAdmin().equals(theUser.getName()))
&& (!selectedGroups.contains(OpenCms.getDefaultUsers().getGroupAdministrators()))) {
throw new CmsLegacyException("cant remove Admin from "
+ OpenCms.getDefaultUsers().getGroupAdministrators(), CmsLegacyException.C_NOT_ADMIN);
}
if(disabled && selectedGroups.contains(OpenCms.getDefaultUsers().getGroupAdministrators())) {
throw new CmsLegacyException("disabled admin",
CmsLegacyException.C_NOT_ADMIN);
}
theUser.setEnabled(!disabled);
changeGroups(cms, theUser, selectedGroups);
session.removeValue("selectedGroups");
session.removeValue("notSelectedGroups");
session.removeValue("DEFAULTGROUP");
session.removeValue("ERROR");
templateSelector = ""; //successful
}catch(CmsException e) {
session.putValue("ERROR", new String("yes")); // remeber that an error has occurred
session.putValue("USERFIRSTNAME", firstname);
session.putValue("USERDESC", desc);
session.putValue("USERSTREET", street);
session.putValue("PWD", pwd);
session.putValue("PWD2", pwd2);
session.putValue("USER", user);
session.putValue("USERNAME", userLastname);
session.putValue("ZIP", zipcode);
session.putValue("TOWN", town);
session.putValue("USEREMAIL", email);
session.putValue("DEFAULTGROUP", defaultGroup);
if ((e instanceof CmsLegacySecurityException) && (((CmsLegacySecurityException)e).getType() == CmsLegacyException.C_SECURITY_INVALID_PASSWORD)) {
if(e.getMessage().equals("unequal passwords")) {
templateSelector = "passworderror3";
}else {
if(e.getMessage().equals("password too short")) {
templateSelector = "passworderror4";
}else {
xmlTemplateDocument.setData("reasonOfError", e.getMessage());
xmlTemplateDocument.setData("perspective", "changeuser");
templateSelector = "passworderror5";
}
}
}else {
if ((e instanceof CmsLegacyException) && (((CmsLegacyException)e).getType() == CmsLegacyException.C_NO_GROUP)) {
templateSelector = "errornogroup2";
}else {
if ((e instanceof CmsLegacyException) && (((CmsLegacyException)e).getType() == CmsLegacyException.C_NO_USER && e.getMessage().equals("user data missing"))) {
templateSelector = "errordatamissing2";
}else {
if ((e instanceof CmsLegacyException) && (((CmsLegacyException)e).getType() == CmsLegacyException.C_NOT_ADMIN && e.getMessage().equals("disabled admin"))) {
templateSelector = "errordisabledadmin";
}else {
session.putValue("ERROR", new String("yes"));
throw e; // hand the exception down
}
}
}
}
} // catch block
} // OK
}
}
} // userYetEstablished
session.putValue("selectedGroups", selectedGroups);
session.putValue("notSelectedGroups", notSelectedGroups);
session.putValue("DEFAULTGROUP", defaultGroup);
xmlTemplateDocument.setData("DISABLED", disabled ? "checked" : "");
}
// again common part for 'newuser' and 'changeuser':
// set the variables for display in the document
if(firstname == null) {
firstname = "";
}
if(desc == null) {
desc = "";
}
if(street == null) {
street = "";
}
if(pwd == null) {
pwd = "";
}
if(pwd2 == null) {
pwd2 = "";
}
if(user == null) {
user = "";
}
if(userLastname == null) {
userLastname = "";
}
if(town == null) {
town = "";
}
if(zipcode == null) {
zipcode = "";
}
if(email == null) {
email = "";
}
xmlTemplateDocument.setData("USERFIRSTNAME", firstname);
xmlTemplateDocument.setData("USERDESC", desc);
xmlTemplateDocument.setData("USERSTREET", street);
xmlTemplateDocument.setData("PWD", pwd);
xmlTemplateDocument.setData("PWD2", pwd2);
xmlTemplateDocument.setData("USER", user);
xmlTemplateDocument.setData("USERNAME", userLastname);
xmlTemplateDocument.setData("TOWN", town);
xmlTemplateDocument.setData("ZIP", zipcode);
xmlTemplateDocument.setData("EMAIL", email);
} // belongs to: 'if perspective is newuser or changeuser'
else {
if(perspective.equals("deleteuser")) {
String user = (String)parameters.get("USER");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -