📄 usermanager.java
字号:
package jp.co.sjts.gsession.main;
/*
* 儐乕僓儅僱乕僕儍乕 UserManager.java
* Copyright (C) 1999-2000 Japan Total System Co,LTD
* Satoru K <koni@sjts.co.jp>
*/
import java.io.File;
import java.io.Serializable;
import java.util.Map;
import java.util.ArrayList;
import jp.co.sjts.gsession.tools.*;
public class UserManager extends GSUserManager implements Serializable {
//MainBaseServlet gsession=null;
// 僐儞僗僩儔僋僞
// public UserManager(String dataDir,MainBaseServlet gsession) throws GSException
// {
// super(dataDir);
// this.gsession = gsession;
// }
public UserManager(String dataDir) throws GSException {
super(dataDir);
//this.gsession = gsession;
}
/*
* password,group,僼傽僀儖傪撉傒崬傓
* in: 側偟
* out: 側偟
*/
public synchronized void Load() throws GSException {
// group僼傽僀儖撉崬傒
GroupF.Load();
PassF.Load();
}
/*
* 僌儖乕僾ID偐傜強懏偟偰偄傞娗棟幰偺儐乕僓ID攝楍傪曉偡
* in: gid(int) 僌儖乕僾ID
*
* out: (int[]) 娗棟幰偲偟偰強懏偟偰偄傞儐乕僓偺儐乕僓ID攝楍
*/
public synchronized int[] GetAdminUserArray(int gid) {
int[] uids = GroupF.getUserArray(gid);
if(uids==null)
return null;
ArrayList auids = new ArrayList(uids.length);
for(int i=0;i<uids.length;i++) {
if(PassF.isAdmin(gid,uids[i]))
auids.add(new Integer(uids[i]));
}
int[] retauids = new int[auids.size()];
for(int i=0;i<auids.size();i++)
retauids[i] = ((Integer)auids.get(i)).intValue();
return retauids;
}
/*
* 儐乕僓ID偐傜IPassword傪曉偡
* in: uid(int) 儐乕僓ID
*
* out: (IPassword) 奩摉偡傞IPassword
*/
public synchronized IPassword getPassword(int uid) throws GSException {
return (IPassword)PassF.UidToPassword(uid);
}
/*
* 儐乕僓ID偐傜僷僗儚乕僪傪曉偡
* in: uid(int) 儐乕僓ID
*
* out: (String) 僷僗儚乕僪
*/
public synchronized String getMDPass(int uid) {
return PassF.getMDPass(uid);
}
/*
* 儐乕僓ID偺僷僗儚乕僪傪愝掕偡傞
* in: uid(int) 儐乕僓ID
* mdpass(String) 僷僗儚乕僪
*
* out: 側偟
*/
public synchronized void setMDPass(int uid,String mdpass) throws GSException {
PassF.setMDPass(uid,mdpass);
PassF.Save();
}
/*
* 僌儖乕僾ID偐傜IGroup傪曉偡
* in: gid(int) 僌儖乕僾ID
*
* out: (IGroup) 奩摉偡傞IGroup
*/
public synchronized IGroup getGroup(int gid) throws GSException {
return (IGroup)GroupF.GidToGroup(gid);
}
/*
* 怴婯僌儖乕僾搊榐
* in: name(String) 僌儖乕僾偺柤慜
* note(String) 僌儖乕僾偺愢柧
*
* out: 側偟
*/
public synchronized void addNewGroup(String name,String note) throws GSException {
GroupF.addGroup(name,note);
GroupF.Save();
}
/*
* 僌儖乕僾忣曬偺曄峏
* in: gid(int) 曄峏偡傞僌儖乕僾偺僌儖乕僾ID
* name(String) 僌儖乕僾偺柤慜
* note(String) 僌儖乕僾偺愢柧
*
* out: 側偟
*/
public synchronized void setGroup(int gid,String name,String note) throws GSException {
GroupF.setGroup(gid,name,note);
GroupF.Save();
}
/*
* 巜掕儐乕僓ID偺儐乕僓柤傪曄峏偡傞
* in: uid(int) 儐乕僓ID
*
* out: (String) 儐乕僓柤
*/
public synchronized void setUserName(int uid,String name) throws GSException {
PassF.setUserName(uid,name);
PassF.Save();
}
/*
* 儐乕僓ID偐傜強懏偟偰偄傞僌儖乕僾偺攝楍傪曉偡丅
* in: uid(int) 儐乕僓ID
*
* out: (Password.GroupAuth[]) 僌儖乕僾ID,尃尷
*/
public synchronized IPassword.GroupAuth[] getGroupAuthArray(int uid) {
return PassF.GetGroupAuthArray(uid);
}
/*
* 儐乕僓ID偺嵟廔儘僌僀儞帪娫傪愝掕偡傞
* in: uid(int) 儐乕僓ID
* time(String) YYYYMMDDHHmmss
*
* out: 側偟
*/
public synchronized void setLastLoginTime(int uid,String time) throws GSException {
PassF.SetLastLoginTime(uid,time);
PassF.Save();
}
/*
* 儐乕僓丒僷僗儚乕僪偺僠僃僢僋
* in: user(String) 儐乕僓幆暿
* pass(String) 僷僗儚乕僪
*
* out: (int)儐乕僓ID
*/
public synchronized int canLogin(String user,String pass) throws GSException {
Password password = PassF.UserToPassword(user);
if(password != null)
if(password.isEqualPass(pass))
return password.GetUserID();
return -1;
}
/*
* 儐乕僓幆暿偑婛偵搊榐偝傟偰偄傞偐傪僠僃僢僋
* in: user(String) 儐乕僓幆暿
*
* out: (boolean) 搊榐偝傟偰偄傞応崌 :true
* 偦傟埲奜偼 :false
*/
public synchronized boolean existsUser(String user) throws GSException {
Password password = PassF.UserToPassword(user);
if(password == null)
return false;
return true;
}
/*
* 怴婯儐乕僓搊榐
*
* in: user(User) 搊榐偡傞儐乕僓偺僨乕僞
* gids(int[]) 搊榐偡傞儐乕僓偑強懏偡傞僌儖乕僾偺GID
* logonID 儘僌僆儞偵巊梡偡傞儐乕僓ID
* exPasswd(String) 埫崋嵪傒僷僗儚乕僪
* pathShashin(String) 幨恀僼傽僀儖(僥儞億儔儕)偺僷僗
*
* out: 側偟
*/
public synchronized void addNewUser(User user,int[] gids,String logonID,String exPasswd,String pathShashin)
throws GSException {
int uid;
// PassF偺峏怴
try {
uid = PassF.addUser(logonID,exPasswd,user.getName(),gids);
} catch(GSException e) {
throw new GSException(e.toString(),e);
}
// GroupF偺峏怴
try {
GroupF.addUser(gids,uid);
} catch(GSException e) {
PassF.delUser(uid);
throw new GSException(e.toString(),e);
}
// Password僼傽僀儖偺曐懚
try {
PassF.Save();
} catch(GSException e) {
PassF.delUser(uid);
GroupF.delUser(gids,uid);
throw new GSException(e.toString(),e);
}
// 僌儖乕僾僼傽僀儖偺曐懚
try{
GroupF.Save();
} catch(GSException e) {
PassF.delUser(uid);
GroupF.delUser(gids,uid);
PassF.Save();
throw new GSException(e.toString(),e);
}
// 儐乕僓僼傽僀儖偺嶌惉
UserFile userFile = new UserFile(dataDir+GSFilename.GS_DIR_USER+File.separator+Integer.toString(uid));
userFile.setName(user.getName());
userFile.setKana(user.getKana());
userFile.setEmail(user.getEmail());
userFile.setPosition(user.getPosition());
userFile.setPostno(user.getPostno());
userFile.setAddress1(user.getAddress1());
userFile.setAddress2(user.getAddress2());
userFile.setTel(user.getTel());
userFile.setFax(user.getFax());
userFile.setPtel1(user.getPtel1());
userFile.setPtel2(user.getPtel2());
userFile.setMemo(user.getMemo());
userFile.setDefaultGroup(user.getDefaultGroup());
// 幨恀僼傽僀儖偺僐僺乕
if( (pathShashin!=null)&&(pathShashin.length()>0)) {
File src=new File(pathShashin);
File dst=new File(dataDir+GSFilename.GS_DIR_USER+File.separator+Integer.toString(uid)
+File.separator+"shashin.gif");
GSTool.copyFile(src,dst);
userFile.setShashin(true);
}
userFile.Save();
IndexSearch idxSearch=null;
// 偐側僀儞僨僢僋僗僼傽僀儖偺嶌惉
idxSearch=new KanaIndexSearch(dataDir+GSFilename.GS_DIR_IDX+File.separator+GSFilename.GS_IDX_KANA);
idxSearch.addIdx(uid,user.getKana());
// mail僀儞僨僢僋僗僼傽僀儖偺嶌惉
idxSearch=new EmailIndexSearch(dataDir+GSFilename.GS_DIR_IDX+File.separator+GSFilename.GS_IDX_MAIL);
idxSearch.addIdx(uid,user.getEmail());
}
/*
* 僌儖乕僾娗棟幰偵愝掕偡傞
*
* in: gid(int) 懳徾偺僌儖乕僾ID
* uid(int[]) 娗棟幰偵偡傞儐乕僓偺ID偺攝楍
*
* out: 側偟
*/
public synchronized void setAdmin(int gid,int[] uid) throws GSException {
for(int i=0;i<uid.length;i++) {
PassF.setAdmin(gid,uid[i]);
}
PassF.Save();
}
/*
* 僲乕儅儖儐乕僓偵愝掕偡傞
*
* in: gid(int) 懳徾偺僌儖乕僾ID
* uid(int[]) 娗棟幰偵偡傞儐乕僓偺ID偺攝楍
*
* out: 側偟
*/
public synchronized void setNormal(int gid,int[] uid) throws GSException {
for(int i=0;i<uid.length;i++) {
PassF.setNormal(gid,uid[i]);
}
PassF.Save();
}
/*
* 僌儖乕僾娗棟幰偵愝掕偡傞
*
* in: gid(int) 懳徾偺僌儖乕僾ID
* uid(int) 娗棟幰偵偡傞儐乕僓偺ID
*
* out: 側偟
*/
public synchronized void setAdmin(int gid,int uid) throws GSException {
PassF.setAdmin(gid,uid);
PassF.Save();
}
/*
* 僲乕儅儖儐乕僓偵愝掕偡傞
*
* in: gid(int) 懳徾偺僌儖乕僾ID
* uid(int) 娗棟幰偵偡傞儐乕僓偺ID
*
* out: 側偟
*/
public synchronized void setNormal(int gid,int uid) throws GSException {
PassF.setNormal(gid,uid);
PassF.Save();
}
/*
* 僌儖乕僾偺嶍彍
*
* in: gid(int) 懳徾偺僌儖乕僾ID
*
* out: 側偟
*/
public synchronized void delGroup(int gid) throws GSException {
int[] uids = GroupF.delGroup(gid);
GroupF.Save();
if(uids!=null) {
for(int i=0;i<uids.length;i++)
PassF.delGroup(uids[i],gid);
PassF.Save();
}
}
/*
* 儐乕僓曇廤
*
* in: uid(int) 曇廤懳徾偺儐乕僓ID
* user(User) 搊榐偡傞儐乕僓偺僨乕僞
* gids(int[]) 搊榐偡傞儐乕僓偑強懏偡傞僌儖乕僾偺GID
* logonID 儘僌僆儞偵巊梡偡傞儐乕僓ID
* exPasswd(String) 埫崋嵪傒僷僗儚乕僪
* pathShashin(String) 幨恀僼傽僀儖(僥儞億儔儕)偺僷僗
*
* out: 側偟
*/
public synchronized void editUser(int uid,User user,int[] gids,String logonID,String exPasswd,String pathShashin)
throws GSException {
// PassF偺峏怴
int[] delGids = PassF.editUser(uid,logonID,exPasswd,user.getName(),gids);
// GroupF偺峏怴
if(delGids!=null)
GroupF.delUser(delGids,uid);
GroupF.addUser(gids,uid);
// Password僼傽僀儖偺曐懚
PassF.Save();
// 僌儖乕僾僼傽僀儖偺曐懚
GroupF.Save();
// 儐乕僓僼傽僀儖偺嶌惉
UserFile userFile = new UserFile(dataDir+GSFilename.GS_DIR_USER+File.separator+Integer.toString(uid));
userFile.Load();
String oldKana = userFile.getKana();
String oldEmail = userFile.getEmail();
userFile.setName(user.getName());
userFile.setKana(user.getKana());
userFile.setEmail(user.getEmail());
userFile.setPosition(user.getPosition());
userFile.setPostno(user.getPostno());
userFile.setAddress1(user.getAddress1());
userFile.setAddress2(user.getAddress2());
userFile.setTel(user.getTel());
userFile.setFax(user.getFax());
userFile.setPtel1(user.getPtel1());
userFile.setPtel2(user.getPtel2());
userFile.setMemo(user.getMemo());
userFile.setDefaultGroup(user.getDefaultGroup());
// 幨恀僼傽僀儖偺僐僺乕
if( (pathShashin!=null)&&(pathShashin.length()>0)) {
File src=new File(pathShashin);
File dst=new File(dataDir+GSFilename.GS_DIR_USER+File.separator+Integer.toString(uid)
+File.separator+"shashin.gif");
GSTool.copyFile(src,dst);
userFile.setShashin(true);
} else {
File pic=new File(dataDir+GSFilename.GS_DIR_USER+File.separator+Integer.toString(uid)
+File.separator+"shashin.gif");
if(pic.exists())
pic.delete();
userFile.setShashin(false);
}
userFile.Save();
// 偐側僀儞僨僢僋僗僼傽僀儖偺嶍彍/捛壛
if( !oldKana.equals(user.getKana())) {
IndexSearch idxSearch=
new KanaIndexSearch(dataDir+GSFilename.GS_DIR_IDX+File.separator+GSFilename.GS_IDX_KANA);
idxSearch.delIdx(uid,oldKana);
idxSearch.addIdx(uid,user.getKana());
}
// mail僀儞僨僢僋僗僼傽僀儖偺嶍彍/捛壛
if(!oldEmail.equals(user.getEmail())) {
IndexSearch idxSearch=
new EmailIndexSearch(dataDir+GSFilename.GS_DIR_IDX+File.separator+GSFilename.GS_IDX_MAIL);
idxSearch.delIdx(uid,oldEmail);
idxSearch.addIdx(uid,user.getEmail());
}
}
/*
* 儐乕僓偺嶍彍
*
* in: uid(int) 懳徾偺儐乕僓ID
* dataDir(String) 僨乕僞僨傿儗僋僩儕
*
* out: 側偟
*/
public synchronized void delUser(int uid,String dataDir) throws GSException {
int[] gids = PassF.delUser(uid);
PassF.Save();
if(gids!=null) {
GroupF.delUser(gids,uid);
GroupF.Save();
}
UserFile user=new UserFile(dataDir+GSFilename.GS_DIR_USER+File.separator+Integer.toString(uid));
user.Load();
// 偐側僀儞僨僢僋僗僼傽僀儖偺嶍彍
String Kana = user.getKana();
IndexSearch kanaIdx =
new KanaIndexSearch(dataDir+GSFilename.GS_DIR_IDX+File.separator+GSFilename.GS_IDX_KANA);
kanaIdx.delIdx(uid,Kana);
// mail僀儞僨僢僋僗僼傽僀儖偺嶌惉
String Email = user.getEmail();
IndexSearch emailIdx =
new EmailIndexSearch(dataDir+GSFilename.GS_DIR_IDX+File.separator+GSFilename.GS_IDX_MAIL);
emailIdx.delIdx(uid,Email);
// 儐乕僓僨傿儗僋僩儕偺嶍彍
File userFile = new File(dataDir+GSFilename.GS_DIR_USER+File.separator+Integer.toString(uid));
GSTool.deleteDir(userFile);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -