}
//
// Project からユーザモデルを取得する
//
UserModel user = Project.getUserModel();
//
// 更新が成功するまでは変更しない
//
final UserModel updateModel = new UserModel();
updateModel.setId(user.getId());
updateModel.setFacilityModel(user.getFacilityModel());
updateModel.setMemberType(user.getFacilityModel().getMemberType());
//updateModel.setMemberType(user.getMemberType());
//
// ログインIDを設定する
//
String userId = user.getFacilityModel().getFacilityId() + ":" + uid.getText().trim();
updateModel.setUserId(userId);
//
// パスワードを設定する
//
final String password = new String(userPassword1.getPassword());
if (!password.equals(DUMMY_PASSWORD)) {
// Password の hash 化を行う
//String Algorithm = ClientContext.getString("addUser.password.hash.algorithm");
//String encoding = ClientContext.getString("addUser.password.hash.encoding");
//String charset = ClientContext.getString("addUser.password.hash.charset");
//String charset = null;
//String hashPass = CryptoUtil.createPasswordHash(Algorithm, encoding, charset, userId, password);
String hashPass = HashUtil.MD5(password);
updateModel.setPassword(hashPass);
} else {
//
// パスワードは変更されていない
//
updateModel.setPassword(user.getPassword());
}
//
// 姓名を設定する
//
String snSt = sn.getText().trim();
updateModel.setSirName(snSt);
String givenNameSt = givenName.getText().trim();
updateModel.setGivenName(givenNameSt);
updateModel.setCommonName(snSt + " " + givenNameSt);
//
// 電子メールを設定する
//
updateModel.setEmail(email.getText().trim());
//
// 医療資格を設定する
//
int selected = licenseCombo.getSelectedIndex();
updateModel.setLicenseModel(licenses[selected]);
//
// 診療科を設定する
//
selected = deptCombo.getSelectedIndex();
updateModel.setDepartmentModel(depts[selected]);
//
// Roleを付け加える
//
Collection<RoleModel> roles = user.getRoles();
for (RoleModel role : roles) {
role.setUserId(user.getUserId());
RoleModel updateRole = new RoleModel();
updateRole.setId(role.getId());
updateRole.setRole(role.getRole());
updateRole.setUser(updateModel);
updateRole.setUserId(updateModel.getUserId());
updateModel.addRole(updateRole);
}
// タスクを実行する
final UserDelegater udl = new UserDelegater();
int maxEstimation = ClientContext.getInt("task.default.maxEstimation");
int delay = ClientContext.getInt("task.default.delay");
String message = null;
Component c = getFrame();
Task task = new Task<Boolean>(c, message, PROGRESS_NOTE, maxEstimation) {
@Override
protected Boolean doInBackground() throws Exception {
logger.debug("ChangePassword doInBackground");
int cnt = udl.updateUser(updateModel);
return cnt > 0 ? true : false;
}
@Override
protected void succeeded(Boolean result) {
logger.debug("ChangePassword succeeded");
if (udl.isNoError()) {
//
// Project を更新する
//
Project.getProjectStub().setUserModel(updateModel);
DolphinPrincipal principal = new DolphinPrincipal();
principal.setUserId(updateModel.idAsLocal());
principal.setFacilityId(updateModel.getFacilityModel().getFacilityId());
Project.getProjectStub().setUserId(updateModel.idAsLocal());
Project.getProjectStub().setDolphinPrincipal(principal);
JOptionPane.showMessageDialog(getFrame(),
SUCCESS_MESSAGE,
ClientContext.getFrameTitle(getName()),