📄 admicommand.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.plugin.console.ConsoleStates;import org.jpxx.mail.plugin.console.admin.Administrator;/** * * This command manages administrator. * * @author Jun Li * @version $Revision: 0.0.3 $, $Date: 2008/10/27 $ * @since JMS 0.0.3 */public class AdmiCommand implements CommandHandler, ConsoleStates { /** * @see org.jpxx.mail.Service.CommandHandler#onCommand(Session session) * @param session 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(); Administrator adm = new Administrator(); if (action.equals("LIS")) { List list = adm.list(); StringBuffer buffer = new StringBuffer(64); /** * At least has one administrator: root */ if (list == null || list.size() == 0) { buffer.append(ERR); buffer.append(" "); buffer.append("Unknow error."); session.writeResponse(buffer.toString()); return; } else { int size = list.size(); buffer.append(OK); buffer.append(" "); buffer.append( "There " + (size > 1 ? "are " : "is ") + size + " administrator" + (size > 1 ? "s" : "") + "."); session.writeResponse(buffer.toString()); for (Iterator i = list.iterator(); i.hasNext();) { session.writeResponse(i.next().toString()); } session.writeResponse("."); } } else if (action.equals("VIE")) { try { String admin = session.getCommandLine().getArgument(1).trim(); String pass = adm.getPassword(admin); StringBuffer buffer = new StringBuffer(64); buffer.append(OK); buffer.append(" "); buffer.append("---UserName Password---"); session.writeResponse(buffer.toString()); session.writeResponse(admin); session.writeResponse(pass); session.writeResponse("."); } catch (ArgumentException e) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("Usage: ADMI <userName>"); session.writeResponse(buffer.toString()); } } else { String user = session.getCommandLine().getArgument(1).trim(); if (action.equals("ADD") || action.equals("MOD")) { try { String pass = session.getCommandLine().getArgument(2).trim(); StringBuffer buffer = new StringBuffer(64); boolean result = false; if (action.equals("ADD")) { result = adm.addAdmin(user, pass); if (result) { buffer.append(OK); buffer.append(" "); buffer.append("Add new administrator successfully"); session.writeResponse(buffer.toString()); } else { buffer.append(ERR); buffer.append(" "); buffer.append("Error, add unsuccessfully"); session.writeResponse(buffer.toString()); } } else { result = adm.modifyAdmin(user, pass); 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: ADMI <action> <admin> <password>" + " action=add or mod"); session.writeResponse(buffer.toString()); return; } } else if (action.equals("DEL")) { StringBuffer buffer = new StringBuffer(64); boolean result = adm.deleteAdmin(user); 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 ae) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append( "Usage: ADMI <action> <admin> [……]"); session.writeResponse(buffer.toString()); return; } } else { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("ADMI not allowed here"); session.writeResponse(buffer.toString()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -