FTPUserManager.java
上传用户:mingda
上传日期:2017-06-20
资源大小:27691k
文件大小:9k
源码类别:

OA系统

开发平台:

Java

  1. package com.gforce.gfoa;
  2. import com.gforce.currency.database.*;
  3. import com.gforce.currency.*;
  4. import java.util.*;
  5. import java.io.*;
  6. /**
  7.  * <p>Title: 吉力科技办公自动化系统</p>
  8.  * <p>Description: 吉力科技办公自动化系统</p>
  9.  * <p>Copyright: 版权所有 2003 (c) 西安吉力科技发展有限公司  Copyright (c) 2003 GForce Sceince & Technology</p>
  10.  * <p>Company: 西安吉力科技发展有限公司 (GForce Sceince & Technology)</p>
  11.  * @author 马登军
  12.  * @version 1.0
  13.  */
  14. public class FTPUserManager
  15.   extends RecordManager
  16. {
  17.   public FTPUserManager()
  18.   {
  19.   }
  20.   protected final static String TableName = "npUserInfo"; //定义声明本类操作表名称为“UserInfo”
  21.   protected final static String IDFieldName = "ID"; //定义声明主键或者可以确定唯一记录的字段名称为“ID”,必须为自增整型
  22.   protected final static String[] NumericFieldsName =
  23.     {
  24.     "Enabled", "QuotaMax"}; //声明数值型字段名称
  25.   protected final static String[] StringFieldsName =
  26.     {
  27.     "UserId", "Pass","HomePath"}; //声明字符型字段名称
  28.   protected final static String[] DatetimeFieldsName =
  29.     {"CreateDateTime"}; //声明日期时间型字段名称
  30.   protected final static String[] TextFieldsName =
  31.     {}; //声明大字符串型字段名称
  32.   /**
  33.    * 根据字段名称获取插入数据时表单元素名称
  34.    * @param strFieldName  字段名称
  35.    * @return  表单素名称
  36.    */
  37.   protected String InsertParament(String strFieldName)
  38.   {
  39.     return "" + strFieldName + ""; //可以根据需要加前缀、后缀
  40.   }
  41.   /**
  42.    * 根据字段名称获取修改数据时表单元素名称
  43.    * @param strFieldName  字段名称
  44.    * @return  表单素名称
  45.    */
  46.   protected String UpdateParament(String strFieldName)
  47.   {
  48.     return "" + strFieldName + ""; //可以根据需要加前缀、后缀
  49.   }
  50.   /**
  51.    * 获取本类操作表名称
  52.    * @return  表名称
  53.    */
  54.   public String getTableName()
  55.   { //获取本类操作表名称
  56.     return TableName;
  57.   }
  58.   protected String getIDFieldName()
  59.   { //获取主键或者可以确定唯一记录的字段名称
  60.     return IDFieldName;
  61.   }
  62.   protected String[] getNumericFieldsName()
  63.   { //获取数值型字段名称
  64.     return NumericFieldsName;
  65.   }
  66.   protected String[] getStringFieldsName()
  67.   { //获取字符型字段名称
  68.     return StringFieldsName;
  69.   }
  70.   protected String[] getDatetimeFieldsName()
  71.   { //获取日期时间型字段名称
  72.     return DatetimeFieldsName;
  73.   }
  74.   protected String[] getTextFieldsName()
  75.   { //获取大字符串型字段名称
  76.     return TextFieldsName;
  77.   }
  78.   /**
  79.    * 修改用户密码
  80.    * @param strUserName 用户名
  81.    * @param strNewPassword  新密码
  82.    * @return  错误代码
  83.    */
  84.   public static int changeUserPassword(String strUserName, String strNewPassword)
  85.   {
  86.     return SQLManager.ExcuteSQL("Update " + TableName + " set Pass='" + strNewPassword + "' where UserID='"
  87.                                 + strUserName + "'");
  88.   }
  89.   /**
  90.    * 获取指定用户的FTP用户名、密码
  91.    * @param iUserID 用户ID
  92.    * @return 指定用户的FTP用户名、密码
  93.    */
  94.   public static Vector getUserFTPData(int iUserID)
  95.   {
  96.     return SQLManager.GetResultSet("Select UserID,Pass,ServerPort from " + TableName + " where UserID=(Select top 1 UserName from UserInfo where ID=" + iUserID + ")");
  97.   }
  98.   /**
  99.    * 删除指定用户ID的FTP用户及FTP用户目录
  100.    * @param iUserID 用户ID
  101.    * @return 错误代码
  102.    */
  103.   public static int deleteByUserID(int iUserID)
  104.   {
  105.     Vector vt = getUserFTPData(iUserID);
  106.     int iReturnValue=0;
  107.     if (vt.size() > 0)
  108.     {
  109.       String strPersonName = UserManager.getPersonnelNameByUserID(iUserID);
  110.       iReturnValue = SQLManager.ExcuteSQL("Delete from npUserComm where GroupID like '%→" + strPersonName + "'");
  111.       iReturnValue = SQLManager.ExcuteSQL("Delete from npGroupPath where GroupID like '%→" + strPersonName + "'");
  112.       iReturnValue = SQLManager.ExcuteSQL("Delete from npUserPath where UserID='" + ((Vector)vt.get(0)).get(0).toString() + "'");
  113.       iReturnValue = SQLManager.ExcuteSQL("Delete from " + TableName + " where UserID='" + ((Vector)vt.get(0)).get(0).toString() + "'");
  114.     }
  115.     else
  116.     {
  117.       /**
  118.        * 该用户不存在
  119.        */
  120.       return -1;
  121.     }
  122.     return iReturnValue;
  123.   }
  124.   /**
  125.    * 设置指定用户ID的FTP用户是否可用
  126.    * @param iUserID 用户ID
  127.    * @param iEnabled
  128.    * @return 错误代码
  129.    */
  130.   public static int setUserEnabled(int iUserID,int iEnabled)
  131.   {
  132.     Vector vt = getUserFTPData(iUserID);
  133.     int iReturnValue=0;
  134.     if (vt.size() > 0)
  135.     {
  136.       iReturnValue = SQLManager.ExcuteSQL("update " + TableName + " set Enabled=" + iEnabled + " where UserID='" + ((Vector)vt.get(0)).get(0).toString() + "'");
  137.     }
  138.     else
  139.     {
  140.       /**
  141.        * 该用户不存在
  142.        */
  143.       return -1;
  144.     }
  145.     return iReturnValue;
  146.   }
  147.   /**
  148.    * 创建指定用户ID的FTP用户及FTP用户默认目录
  149.    * @param iUserID 用户ID
  150.    * @return 错误代码
  151.    */
  152.   public static int createByUserID(int iUserID)
  153.   {
  154.     Vector vt = UserManager.getUserInfoByID(iUserID);
  155.     String strPersonName = UserManager.getPersonnelNameByUserID(iUserID);
  156.     int iReturnValue=0;
  157.     if (vt.size() > 0)
  158.     {
  159.       int iDepartmentID = 0;
  160.       try
  161.       {
  162.         iDepartmentID=Integer.parseInt(((Vector)vt.get(0)).get(5).toString(),10);
  163.       }
  164.       catch(Exception err){SystemOut.OutPrintLine(err.toString());}
  165.       String strDepartmentPath = DepartmentManager.getDepartFullName(iDepartmentID).replaceAll("→","\\");
  166.       if(strDepartmentPath.length()>0)strDepartmentPath = "\" + strDepartmentPath;
  167.       String strPersonFullPath = strDepartmentPath + "\" + strPersonName;
  168.       makeDirs(SystemParament.getParament("ftpomepath") + strPersonFullPath);
  169.       iReturnValue = SQLManager.ExcuteSQL("Insert into npUserPath (UserID,UserPath,Permissions) values ('" + ((Vector)vt.get(0)).get(1).toString() + "','" + SystemParament.getParament("ftpomepath") + strPersonFullPath + "','RWAMECDLP')");
  170.       String strGroupname = strPersonFullPath.replaceAll("\\","→") + "→" + strPersonName;
  171.       String strGroupNames = strGroupname;
  172.       String strReadOnlyGroupname = "";
  173.       String strFullGroupname = "";
  174.       iReturnValue = SQLManager.ExcuteSQL("Insert into npGroupPath (GroupID,GroupPath,Permissions) values ('" + strGroupname + "','" + SystemParament.getParament("ftpomepath") + strPersonFullPath + "','RWAMECDLP')");
  175.       iReturnValue = SQLManager.ExcuteSQL("Insert into npUserComm (GroupID,HomePath,ServerPort) values ('" + strGroupname + "','" + SystemParament.getParament("ftpomepath") + strPersonFullPath + "',21)");
  176.       while(strPersonFullPath.length()>0)
  177.       {
  178.         strPersonFullPath = strPersonFullPath.substring(0,strPersonFullPath.lastIndexOf("\"));
  179.         makeDirs(SystemParament.getParament("ftpomepath") + strPersonFullPath);
  180.         makeDirs(SystemParament.getParament("ftpomepath") + strPersonFullPath + "\只读共享");
  181.         makeDirs(SystemParament.getParament("ftpomepath") + strPersonFullPath + "\完全共享");
  182.         strGroupname = strPersonFullPath.replaceAll("\\","→") + "→" + strPersonName;
  183.         strReadOnlyGroupname = strPersonFullPath.replaceAll("\\","→") + "→只读共享→" + strPersonName;
  184.         strFullGroupname = strPersonFullPath.replaceAll("\\","→") + "→完全共享→" + strPersonName;
  185.         strGroupNames +=  "|" + strReadOnlyGroupname + "|" + strFullGroupname + "|" + strGroupname;
  186.         iReturnValue = SQLManager.ExcuteSQL("Insert into npGroupPath (GroupID,GroupPath,Permissions) values ('" + strReadOnlyGroupname + "','" + SystemParament.getParament("ftpomepath") + strPersonFullPath + "\只读共享','RWA--C-LP')");
  187.         iReturnValue = SQLManager.ExcuteSQL("Insert into npUserComm (GroupID,HomePath,ServerPort) values ('" + strReadOnlyGroupname + "','" + SystemParament.getParament("ftpomepath") + strPersonFullPath + "\只读共享',21)");
  188.         iReturnValue = SQLManager.ExcuteSQL("Insert into npGroupPath (GroupID,GroupPath,Permissions) values ('" + strFullGroupname + "','" + SystemParament.getParament("ftpomepath") + strPersonFullPath + "\完全共享','RWAMECDLP')");
  189.         iReturnValue = SQLManager.ExcuteSQL("Insert into npUserComm (GroupID,HomePath,ServerPort) values ('" + strFullGroupname + "','" + SystemParament.getParament("ftpomepath") + strPersonFullPath + "\完全共享',21)");
  190.         iReturnValue = SQLManager.ExcuteSQL("Insert into npGroupPath (GroupID,GroupPath,Permissions) values ('" + strGroupname + "','" + SystemParament.getParament("ftpomepath") + strPersonFullPath + "','R------L-')");
  191.         iReturnValue = SQLManager.ExcuteSQL("Insert into npUserComm (GroupID,HomePath,ServerPort) values ('" + strGroupname + "','" + SystemParament.getParament("ftpomepath") + strPersonFullPath + "',21)");
  192.       }
  193.       iReturnValue = SQLManager.ExcuteSQL("insert into " + TableName + " (UserID,Pass,Enabled,ServerPort,Expire,HomePath,GroupId) values ('" + ((Vector)vt.get(0)).get(1).toString() + "','" + StringNew.getDisencodePassword(((Vector)vt.get(0)).get(2).toString()) + "',1,21,0,'" + SystemParament.getParament("ftpomepath") + "','" + strGroupNames + "')");
  194.     }
  195.     else
  196.     {
  197.       /**
  198.        * 该用户不存在
  199.        */
  200.       return -1;
  201.     }
  202.     return iReturnValue;
  203.   }
  204.   /**
  205.    * 创建指定多级目录
  206.    * @param strDirsPath String 目录实际路径
  207.    */
  208.   private static void makeDirs(String strDirsPath)
  209.   {
  210.     File file = new File(strDirsPath);
  211.     try
  212.     {
  213.         if (!file.exists())
  214.         {
  215.             file.mkdirs();
  216.         }
  217.     }
  218.     catch (Exception ex)
  219.     {
  220.       SystemOut.OutPrintLine(ex.toString());
  221.     }
  222.   }
  223. }