📄 cmsadminusers.java
字号:
}else {
if(reqCont.getRequest().getParameter("OK") != null) {
// form submitted, try to establish new user
try {
if(email.equals("") || userLastname.equals("")
|| user.equals("")) {
throw new CmsException("user data missing",
CmsException.C_NO_USER);
}
if(!pwd.equals(pwd2)) {
throw new CmsException("unequal passwords",
CmsException.C_SHORT_PASSWORD);
}
// check the password
Utils.validateNewPassword(cms, pwd, null);
Hashtable additionalInfo = new Hashtable();
// additionalInfo.put(C_ADDITIONAL_INFO_ZIPCODE, zipcode);
// additionalInfo.put(C_ADDITIONAL_INFO_TOWN, town);
CmsUser newUser = cms.addUser(user, pwd, defaultGroup, desc,
additionalInfo, C_FLAG_ENABLED);
newUser.setEmail(email);
newUser.setFirstname(firstname);
newUser.setLastname(userLastname);
newUser.setAddress(street);
newUser.setAdditionalInfo(C_ADDITIONAL_INFO_ZIPCODE, zipcode);
newUser.setAdditionalInfo(C_ADDITIONAL_INFO_TOWN, town);
for(int z = 0;z < selectedGroups.size();z++) {
String groupname = (String)selectedGroups.elementAt(z);
if(!groupname.equals(defaultGroup)) {
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.getType() == CmsException.C_SHORT_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.getType() == CmsException.C_NO_GROUP) {
templateSelector = "errornogroup1";
}else {
if(e.getType() == CmsException.C_NO_USER
&& e.getMessage().equals("user data missing")) {
templateSelector = "errordatamissing1";
}else {
// unknown error
xmlTemplateDocument.setData("details", Utils.getStackTrace(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 = (CmsUser)cms.readUser(user);
if(theUser == null) {
throw new CmsException("user does not exist");
}
firstname = theUser.getFirstname();
desc = theUser.getDescription();
street = theUser.getAddress();
userLastname = theUser.getLastname();
email = theUser.getEmail();
disabled = theUser.getDisabled();
zipcode = (String)theUser.getAdditionalInfo(C_ADDITIONAL_INFO_ZIPCODE);
town = (String)theUser.getAdditionalInfo(C_ADDITIONAL_INFO_TOWN);
defaultGroup = theUser.getDefaultGroup().getName();
Vector groups = cms.getDirectGroupsOfUser(user);
if(groups != null) {
selectedGroups = new Vector();
for(int z = 0;z < groups.size();z++) {
selectedGroups.addElement(((CmsGroup)groups.elementAt(z)).getName());
}
}else {
throw new CmsException(CmsException.C_NO_GROUP);
}
groups = cms.getGroups();
if(groups != null) {
notSelectedGroups = new Vector();
for(int z = 0;z < groups.size();z++) {
String name = ((CmsGroup)groups.elementAt(z)).getName();
if(!selectedGroups.contains(name)) {
notSelectedGroups.addElement(name);
}
}
}
}else {
// fetch data from the form
if((String)parameters.get("LOCK") != null) {
disabled = true;
}
if(reqCont.getRequest().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(reqCont.getRequest().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(reqCont.getRequest().getParameter("OK") != null) {
// form submitted, try to change the user data
try {
if(email.equals("") || userLastname.equals("")
|| user.equals("")) {
throw new CmsException("user data missing",
CmsException.C_NO_USER);
}
if(!pwd.equals(pwd2)) {
throw new CmsException("unequal passwords",
CmsException.C_SHORT_PASSWORD);
}
if(!pwd.equals("")) {
cms.setPassword(user, pwd);
} // if nothing is entered don't change the password
CmsUser theUser = (CmsUser)cms.readUser(user);
theUser.setEmail(email);
theUser.setDescription(desc);
theUser.setFirstname(firstname);
theUser.setLastname(userLastname);
theUser.setAddress(street);
theUser.setAdditionalInfo(C_ADDITIONAL_INFO_ZIPCODE, zipcode);
theUser.setAdditionalInfo(C_ADDITIONAL_INFO_TOWN, town);
if((C_USER_ADMIN.equals(theUser.getName()))
&& (!selectedGroups.contains(C_GROUP_ADMIN))) {
throw new CmsException("cant remove Admin from "
+ C_GROUP_ADMIN, CmsException.C_NOT_ADMIN);
}
if(disabled && selectedGroups.contains(C_GROUP_ADMIN)) {
throw new CmsException("disabled admin",
CmsException.C_NOT_ADMIN);
}
if(disabled == true) {
theUser.setDisabled();
}else {
theUser.setEnabled();
}
changeGroups(cms, theUser, defaultGroup, 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.getType() == CmsException.C_SHORT_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.getType() == CmsException.C_NO_GROUP) {
templateSelector = "errornogroup2";
}else {
if(e.getType() == CmsException.C_NO_USER
&& e.getMessage().equals("user data missing")) {
templateSelector = "errordatamissing2";
}else {
if(e.getType() == CmsException.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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -