log.info("系统登录帐号[{}]密码被重置!",name);
}
public void save( LoginAccount account,LoginAccount operator ){
if( account == null )
throw new ApplicationException( "数据不完整,LoginAccount 为空!" );
boolean inserted = account.isInsert();
if( inserted ){
account.setStatus(AuditStatus.NEW);
account.setCreateDate( new Date() );
account.setPassword( CryptographyUtil.hashMd5Hex( DEFAULT_PASSWORD ) );
if( account.getType() == null )
account.setType(LoginAccount.LoginAccountType.ADMIN);
}
if( account.getRoles() != null ){
Set<Role> dbRoles = new HashSet<Role>();
for( Role role:account.getRoles() ){
if( role == null )
continue;
Role dbRole = roleManager.get(role);
if( dbRole == null )
throw new ApplicationException( "所选角色["+role.getId()+"]已不存在!" );
dbRoles.add(dbRole);
}
account.setRoles(dbRoles);
}
LoginAccount dbAcc = getDao().get( account.getLoginName() );
LoginAccount originalAcc = null,newAcc = account;
if( dbAcc != null )
originalAcc = dbAcc.clone();
if( dbAcc == null && !inserted )
throw new ApplicationException( "登录账号已不存在,不能进行修改操作!" );
if( dbAcc != null && !dbAcc.getIdentity().equals(account.getIdentity()))
throw new ApplicationException( "登录账号名'"+account.getLoginName()+"'已存在!" );
if( dbAcc != null ){
if( !dbAcc.isEffective() ){
dbAcc.setPartyId(account.getPartyId());
dbAcc.setDescription( account.getDescription() );