📄 usercommand.java
字号:
/**************************************************************** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * * * Copyright 2008 Jun Li(SiChuan University, the School of * * Software Enginerring). All rights reserved. * * * * Licensed to the JMS under one or more contributor license * * agreements. See the LICENCE file distributed with this * * work for additional information regarding copyright * * ownership. The JMS licenses this file you may not use this * * file except in compliance with the License. * * * * Unless required by applicable law or agreed to in writing, * * software distributed under the License is distributed on an * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * * KIND, either express or implied. See the License for the * * specific language governing permissions and limitations * * under the License. * ****************************************************************/package org.jpxx.mail.plugin.console.command;import java.util.Iterator;import java.util.List;import org.jpxx.mail.Exception.ArgumentException;import org.jpxx.mail.Service.CommandHandler;import org.jpxx.mail.Service.Session;import org.jpxx.mail.User.User;import org.jpxx.mail.User.UserHandler;import org.jpxx.mail.plugin.console.ConsoleStates;/** * * This command manages users. * * Syntax: * USER [Command] [Name] [……] * * @author Jun Li * @version $Revision: 0.0.3 $, $Date: 2008/10/25 $ * @since JMS 0.0.3 */public class UserCommand implements CommandHandler, ConsoleStates { /** * Manages users. * * @see org.jpxx.mail.Service.CommandHandler#onCommand(Session session) * @param session The Session of Server and client */ public void onCommand(Session session) { int state = session.getLastAction(); if (state == AUTHENTICATION || state == TRANSACTION) { session.setLastAction(TRANSACTION); try { String action = session.getCommandLine().getArgument(0).toUpperCase().trim(); if (action.equals("LIS")) { try { String domain = session.getCommandLine().getArgument(1).trim(); UserHandler uh = new UserHandler(); List list = uh.list(domain); StringBuffer buffer = new StringBuffer(64); if (list == null || list.size() == 0) { buffer.append(OK); buffer.append(" "); buffer.append("There is no user."); session.writeResponse(buffer.toString()); session.writeResponse("."); return; } else { int size = list.size(); buffer.append(OK); buffer.append(" "); buffer.append( "There " + (size > 1 ? "are " : "is ") + size + " user" + (size > 1 ? "s" : "") + "."); session.writeResponse(buffer.toString()); for (Iterator i = list.iterator(); i.hasNext();) { session.writeResponse(i.next().toString()); } session.writeResponse("."); return; } } catch (ArgumentException e) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("Usage: USER LIS <domain>"); session.writeResponse(buffer.toString()); return; } } else if (action.equals("VIE")) { try { String user = session.getCommandLine().getArgument(1).trim(); String domain = session.getCommandLine().getArgument(2).trim(); UserHandler uh = new UserHandler(); User u = uh.getUser(user, domain); StringBuffer buffer = new StringBuffer(64); if (u==null) { buffer.append(ERR); buffer.append(" "); buffer.append(user +" was not found"); session.writeResponse(buffer.toString()); } else { buffer.append(OK); buffer.append(" "); buffer.append("---UserName Password Domain Size---"); session.writeResponse(buffer.toString()); session.writeResponse(u.getUserName()); session.writeResponse(u.getPassword()); session.writeResponse(u.getDomain()); session.writeResponse(String.valueOf(u.getSize())); session.writeResponse("."); } } catch (ArgumentException e) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("Usage: USER VIE <userName> <domain>"); session.writeResponse(buffer.toString()); } return; } else { String user = session.getCommandLine().getArgument(1).trim(); if (action.equals("ADD") || action.equals("MOD")) { try { String pass = session.getCommandLine().getArgument(2).trim(); String domain = session.getCommandLine().getArgument(3).trim(); long size = 0; try { size = Long.parseLong( session.getCommandLine().getArgument(4).trim()); } catch (ArgumentException ae) { size = 0; } StringBuffer buffer = new StringBuffer(64); boolean result = false; UserHandler uh = new UserHandler(); if (action.equals("ADD")) { if (size <= 0) { result = uh.addUser(user, pass, domain); } else { result = uh.addUser(user, pass, domain, size); } if (result) { buffer.append(OK); buffer.append(" "); buffer.append("Add new user successfully"); session.writeResponse(buffer.toString()); } else { buffer.append(ERR); buffer.append(" "); buffer.append("Error, add unsuccessfully"); session.writeResponse(buffer.toString()); } } else { if (size <= 0) { result = uh.modifyUser(user, pass, domain); } else { result = uh.modifyUser(user, pass, domain, size); } if (result) { buffer.append(OK); buffer.append(" "); buffer.append("Modify successfully"); session.writeResponse(buffer.toString()); } else { buffer.append(ERR); buffer.append(" "); buffer.append("Error, modify unsuccessfully"); session.writeResponse(buffer.toString()); } } } catch (ArgumentException e) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("Usage: USER <action> <userName> <password>" + " <domain> [size] action=add or mod"); session.writeResponse(buffer.toString()); return; } } else if (action.equals("DEL")) { try { String domain = session.getCommandLine().getArgument(2).trim(); UserHandler uh = new UserHandler(); StringBuffer buffer = new StringBuffer(64); boolean result = uh.deleteUser(user, domain); if (result) { buffer.append(OK); buffer.append(" "); buffer.append("Delete successfully"); session.writeResponse(buffer.toString()); } else { buffer.append(ERR); buffer.append(" "); buffer.append("Error, delete unsuccessfully"); session.writeResponse(buffer.toString()); } } catch (ArgumentException e) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("Usage: USER DEL <userName> <domain>"); session.writeResponse(buffer.toString()); return; } } } } catch (ArgumentException ae) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append( "Usage: USER <action> <userName> [……]"); session.writeResponse(buffer.toString()); return; } } else { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("USER not allowed here"); session.writeResponse(buffer.toString()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -