Index: forgon-core/src/main/java/com/forgon/security/action/RoleAction.java =================================================================== diff -u -r15532 -r15545 --- forgon-core/src/main/java/com/forgon/security/action/RoleAction.java (.../RoleAction.java) (revision 15532) +++ forgon-core/src/main/java/com/forgon/security/action/RoleAction.java (.../RoleAction.java) (revision 15545) @@ -75,8 +75,12 @@ if (role != null) { if ((role.getId() == null) || (role.getId() == 0)) { role.setId(null); + roleManager.save(role, role.getParentIds()); + }else{ + Role dbRole = roleManager.getById(role.getId() + ""); + roleManager.save(role, role.getParentIds(),dbRole); } - roleManager.save(role, role.getParentIds()); + StrutsResponseUtils.output(true, "保存成功"); } }catch(RuntimeException e){ @@ -103,7 +107,12 @@ } public void prepareSave() { - iniInfo(); + role = new Role(); + Role roleUser = roleManager.getRoleByRoleName("ROLE_USER_0"); + if (roleUser != null) { + role.setParentIds(roleUser.getId().toString()); + role.setParentNames(roleUser.getDescn()); + } } public Role getRole() { Index: ssts-web/src/main/resources/spring/serviceContext.xml =================================================================== diff -u -r12331 -r15545 --- ssts-web/src/main/resources/spring/serviceContext.xml (.../serviceContext.xml) (revision 12331) +++ ssts-web/src/main/resources/spring/serviceContext.xml (.../serviceContext.xml) (revision 15545) @@ -5,8 +5,22 @@ http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName"> + + + + + + + + + PROPAGATION_REQUIRED + + + - + + Index: forgon-core/src/main/java/com/forgon/security/service/RoleManager.java =================================================================== diff -u -r12331 -r15545 --- forgon-core/src/main/java/com/forgon/security/service/RoleManager.java (.../RoleManager.java) (revision 12331) +++ forgon-core/src/main/java/com/forgon/security/service/RoleManager.java (.../RoleManager.java) (revision 15545) @@ -33,6 +33,14 @@ public Set getAllInheritanceRoles(Role role); + /** + * 修改的时候调用的保存方法 + * @param role 新的数据存储在这个对象中 + * @param parentIds + * @param dbRole 目前数据库中的值 + */ + public void save(Role role, String parentIds,Role dbRole); + public void save(Role role, String parentIds); public String getAllInheritanceRoleNamesUnincludeSelf(Role role); Index: forgon-core/src/main/java/com/forgon/security/service/RoleManagerImpl.java =================================================================== diff -u -r15532 -r15545 --- forgon-core/src/main/java/com/forgon/security/service/RoleManagerImpl.java (.../RoleManagerImpl.java) (revision 15532) +++ forgon-core/src/main/java/com/forgon/security/service/RoleManagerImpl.java (.../RoleManagerImpl.java) (revision 15545) @@ -172,6 +172,18 @@ return new ArrayList(findedRoles.getUsers()); } + public void save(Role role, String parentIds,Role dbRole) { + if(dbRole == null){ + save(role,parentIds); + }else{ + dbRole.setDescn(role.getDescn()); +// dbRole.setName(role.getName()); + dbRole.setUserIds(role.getUserIds()); + dbRole.setUserNames(role.getUserNames()); + save(dbRole,parentIds); + } + } + public void save(Role role, String parentIds) { String simpleName = role.getSimpleName(); if(StringUtils.isNotBlank(simpleName)){