From 0af14b3d521ad7604463f22c0c022223b39b819a Mon Sep 17 00:00:00 2001 From: kouxian Date: Tue, 30 Aug 2016 10:32:53 +0800 Subject: [PATCH] up jar version --- pom.xml | 14 +- src/main/java/com/rekoe/MvcSetup.java | 5 +- src/main/java/com/rekoe/domain/User.java | 12 ++ .../rekoe/module/admin/AdminProjectAct.java | 44 ++--- .../module/admin/AdminProjectGroupAct.java | 12 +- .../module/admin/AdminProjectGroupUsrAct.java | 9 +- .../com/rekoe/module/admin/AdminRoleAct.java | 15 +- .../rekoe/module/admin/AdminSvnUserAct.java | 3 +- .../com/rekoe/module/admin/AdminUserAct.java | 38 ++--- .../com/rekoe/module/admin/PermissionAct.java | 21 +-- .../module/admin/PermissionCategoryAct.java | 6 - .../com/rekoe/service/AuthorityService.java | 12 ++ .../rekoe/service/AuthorityServiceImpl.java | 161 ++++++++++++++++++ .../java/com/rekoe/service/BaseService.java | 8 +- .../service/PermissionCategoryService.java | 17 +- .../com/rekoe/service/PermissionService.java | 8 +- .../rekoe/service/ProjectConfigService.java | 5 +- .../com/rekoe/service/ProjectService.java | 4 +- .../java/com/rekoe/service/RoleService.java | 9 +- .../java/com/rekoe/service/UserService.java | 155 +---------------- .../rekoe/ssh/PublicKeyAuthentication.java | 1 + src/main/resources/conf.properties | 4 +- 22 files changed, 274 insertions(+), 289 deletions(-) create mode 100644 src/main/java/com/rekoe/service/AuthorityService.java create mode 100644 src/main/java/com/rekoe/service/AuthorityServiceImpl.java diff --git a/pom.xml b/pom.xml index 119d9d4..67b39c5 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ com.alibaba druid - 1.0.19 + 1.0.24 jconsole @@ -54,17 +54,17 @@ org.nutz nutz-plugins-views - 1.r.54.r2 + 1.r.57 org.nutz nutz - 1.r.56 + 1.r.57.r3 org.nutz nutz-web - 1.b.52 + 1.r.57 com.restfb @@ -100,12 +100,12 @@ org.nutz nutz-plugins-daocache - 1.b.53.r2 + 1.r.57 org.nutz nutz-integration-quartz - 1.b.53 + 1.r.57.r2 org.json @@ -120,7 +120,7 @@ org.nutz nutz-integration-shiro - 1.b.53.r2 + 1.r.57 shiro-core diff --git a/src/main/java/com/rekoe/MvcSetup.java b/src/main/java/com/rekoe/MvcSetup.java index 21016ae..0268f18 100644 --- a/src/main/java/com/rekoe/MvcSetup.java +++ b/src/main/java/com/rekoe/MvcSetup.java @@ -27,8 +27,8 @@ import com.rekoe.domain.PjGrUsr; import com.rekoe.domain.ProjectConfig; import com.rekoe.domain.User; import com.rekoe.domain.Usr; +import com.rekoe.service.AuthorityService; import com.rekoe.service.ProjectConfigService; -import com.rekoe.service.UserService; import freemarker.template.Configuration; @@ -73,8 +73,7 @@ public class MvcSetup implements Setup { dao.update(user); } } - UserService userService = ioc.get(UserService.class); - userService.initFormPackages("com.rekoe"); + ioc.get(AuthorityService.class).initFormPackage("com.rekoe"); ioc.get(ProjectConfigService.class).init(); } diff --git a/src/main/java/com/rekoe/domain/User.java b/src/main/java/com/rekoe/domain/User.java index fa801d8..e80f86c 100644 --- a/src/main/java/com/rekoe/domain/User.java +++ b/src/main/java/com/rekoe/domain/User.java @@ -61,6 +61,18 @@ public class User implements Serializable { @ColDefine(type = ColType.BOOLEAN) private boolean system; + @Column("is_del") + @ColDefine(type = ColType.BOOLEAN) + private boolean del; + + public boolean isDel() { + return del; + } + + public void setDel(boolean del) { + this.del = del; + } + public String getProviderid() { return providerid; } diff --git a/src/main/java/com/rekoe/module/admin/AdminProjectAct.java b/src/main/java/com/rekoe/module/admin/AdminProjectAct.java index 5bbda80..6ca339a 100644 --- a/src/main/java/com/rekoe/module/admin/AdminProjectAct.java +++ b/src/main/java/com/rekoe/module/admin/AdminProjectAct.java @@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.integration.shiro.annotation.NutzRequiresPermissions; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.util.NutMap; @@ -17,7 +18,6 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; -import com.rekoe.annotation.PermissionTag; import com.rekoe.common.Message; import com.rekoe.common.page.Pagination; import com.rekoe.domain.Pj; @@ -43,23 +43,20 @@ public class AdminProjectAct extends BaseAction { @At @Ok("fm:template.admin.project.list") - @RequiresPermissions({ "svn.project:view" }) - @PermissionTag(name = "SVN浏览项目", tag = "SVN项目管理") + @NutzRequiresPermissions(value = "svn.project:view", name = "浏览项目", tag = "SVN项目管理", enable = true) public Pagination list(@Param(value = "pageNumber", df = "1") int page) { return projectService.getObjListByPager(page, 20, null); } @At @Ok("fm:template.admin.project.add") - @RequiresPermissions({ "svn.project:add" }) - @PermissionTag(name = "SVN添加项目", tag = "SVN项目管理", enable = true) + @NutzRequiresPermissions(value = "svn.project:add", name = "添加项目", tag = "SVN项目管理", enable = true) public void add() { } @At @Ok("fm:template.admin.project.edit") - @RequiresPermissions({ "svn.project:edit" }) - @PermissionTag(name = "SVN编辑项目", tag = "SVN项目管理", enable = false) + @NutzRequiresPermissions(value = "svn.project:edit", name = "编辑项目", tag = "SVN项目管理", enable = true) public Pj edit(@Param("pj") String pj) { return projectService.get(pj); } @@ -67,7 +64,6 @@ public class AdminProjectAct extends BaseAction { @At @Ok("json") @RequiresPermissions("svn.project:add") - @PermissionTag(name = "SVN添加项目", tag = "SVN项目管理", enable = false) public Message o_save(@Param("::pj.") Pj pj, HttpServletRequest req) { boolean isOk = projectService.nameOk(pj.getPj()); if (isOk) { @@ -82,7 +78,7 @@ public class AdminProjectAct extends BaseAction { @At @Ok("fm:template.admin.project.rep") - @RequiresPermissions({ "svn.project:view" }) + @RequiresPermissions("svn.project:view") public String rep(@Param("pj") String pj, HttpServletRequest req) { Pj project = projectService.get(pj); String root = repositoryService.getRepositoryRoot(project); @@ -119,7 +115,7 @@ public class AdminProjectAct extends BaseAction { @At @Ok("json") - @RequiresPermissions({ "svn.project:edit" }) + @RequiresPermissions("svn.project:edit") public Message init(@Param("pj") String pj, HttpServletRequest req) { Pj project = projectService.get(pj); if (project.isInitTempl()) { @@ -134,7 +130,7 @@ public class AdminProjectAct extends BaseAction { @At @Ok("fm:template.admin.project.pjauth") - @RequiresPermissions({ "svn.project:view" }) + @RequiresPermissions("svn.project:view") public String pjauth(@Param("pj") String pj, @Param("res") String res, @Param("entity") PjAuth entity, HttpServletRequest req) { if (entity == null) { entity = new PjAuth(); @@ -168,7 +164,7 @@ public class AdminProjectAct extends BaseAction { @At @Ok("raw") - @RequiresPermissions({ "svn.project:view" }) + @RequiresPermissions("svn.project:view") public String ajaxTreeService(HttpServletRequest req, HttpServletResponse response) { NutMap params = CommonUtils.getRequestParametersMap(req); com.rekoe.domain.Ajax ajax = treeService.execute(params); @@ -180,8 +176,7 @@ public class AdminProjectAct extends BaseAction { @At @Ok("json") - @RequiresPermissions({ "svn.project:auth.manager" }) - @PermissionTag(name = "管理项目权限", tag = "SVN项目管理", enable = false) + @NutzRequiresPermissions(value = "svn.project:auth.manager", name = "管理项目权限", tag = "SVN项目管理", enable = true) public Message delete(@Param("id") String id, HttpServletRequest req) { try { projectService.delete(id); @@ -194,7 +189,6 @@ public class AdminProjectAct extends BaseAction { @At("/pjauth/delete") @Ok("fm:template.admin.project.pjauth") @RequiresPermissions({ "svn.project:auth.manager" }) - @PermissionTag(name = "管理项目权限", tag = "SVN项目管理", enable = true) public String pjauth_delete(@Param("gr") String gr, @Param("pj") String pj, @Param("res") String res, @Param("usr") String usr) { if (StringUtils.isNotBlank(gr)) { projectAuthService.deleteByGr(pj, gr, res); @@ -209,28 +203,22 @@ public class AdminProjectAct extends BaseAction { @At @Ok("fm:template.admin.project.config") - @RequiresPermissions({ "svn.project:conf" }) - @PermissionTag(name = "配置管理", tag = "SVN项目管理", enable = true) + @NutzRequiresPermissions(value = "svn.project:conf", name = "配置管理", tag = "SVN项目管理", enable = true) public ProjectConfig conf() { return projectConfigService.get(); } @At("/conf/update") @Ok("json") - @RequiresPermissions({ "svn.project:conf" }) - @PermissionTag(name = "配置管理", tag = "SVN项目管理", enable = false) + @RequiresPermissions("svn.project:conf") public Message conf_update(@Param("::conf.") ProjectConfig conf, HttpServletRequest req) { - boolean isRight = projectConfigService.update(conf); - if (isRight) { - return Message.success("ok", req); - } - return Message.error("erroe", req); + projectConfigService.update(conf); + return Message.success("ok", req); } @At @Ok("json") - @RequiresPermissions("svn.project:update") - @PermissionTag(name = "SVN编辑项目", tag = "SVN项目管理", enable = true) + @NutzRequiresPermissions(value = "svn.project:update", name = "SVN编辑项目", tag = "SVN项目管理", enable = true) public Message o_update(@Param("::pj.") Pj pj, HttpServletRequest req) { projectService.update(pj); return Message.success("ok", req); @@ -239,7 +227,6 @@ public class AdminProjectAct extends BaseAction { @At("/pjauth/save") @Ok("fm:template.admin.project.pjauth") @RequiresPermissions({ "svn.project:auth.manager" }) - @PermissionTag(name = "管理项目权限", tag = "SVN项目管理", enable = false) public String pjauth_save(@Param("rw") String rw, @Param("grs") String[] grs, @Param("pj") String pj, @Param("res") String res, @Param("usrs") String[] usrs) { PjAuth entity = new PjAuth(); entity.setPj(pj); @@ -252,7 +239,6 @@ public class AdminProjectAct extends BaseAction { @At @Ok("fm:template.admin.project.add_dir") @RequiresPermissions("svn.project:update") - @PermissionTag(name = "SVN编辑项目", tag = "SVN项目管理", enable = false) public String file_add(@Param("pj") String pj) { return pj; } @@ -263,7 +249,6 @@ public class AdminProjectAct extends BaseAction { @At @Ok("json") @RequiresPermissions("svn.project:update") - @PermissionTag(name = "SVN编辑项目", tag = "SVN项目管理", enable = false) public Message file_save(@Param("pj") String pj, @Param("file") String file, HttpServletRequest req) { doCommit.mkdirs(pj, new String[] { file }); return Message.success("ok", req); @@ -272,7 +257,6 @@ public class AdminProjectAct extends BaseAction { @At("/pjauth_delete") @Ok("fm:template.admin.project.pjauth") @RequiresPermissions("svn.project:auth.manager") - @PermissionTag(name = "SVN编辑项目", tag = "SVN项目管理", enable = false) public String pjauth_delete(@Param("pj") String pj, @Param("gr") String gr, @Param("usr") String usr, @Param("res") String res, HttpServletRequest req) { if (StringUtils.isNotBlank(gr)) { projectAuthService.deleteByGr(pj, gr, res); diff --git a/src/main/java/com/rekoe/module/admin/AdminProjectGroupAct.java b/src/main/java/com/rekoe/module/admin/AdminProjectGroupAct.java index b96fe44..0daaa59 100644 --- a/src/main/java/com/rekoe/module/admin/AdminProjectGroupAct.java +++ b/src/main/java/com/rekoe/module/admin/AdminProjectGroupAct.java @@ -4,6 +4,7 @@ import javax.servlet.http.HttpServletRequest; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; +import org.nutz.integration.shiro.annotation.NutzRequiresPermissions; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Lang; @@ -11,7 +12,6 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; -import com.rekoe.annotation.PermissionTag; import com.rekoe.common.Message; import com.rekoe.common.page.Pagination; import com.rekoe.domain.PjGr; @@ -27,8 +27,7 @@ public class AdminProjectGroupAct extends BaseAction { @At @Ok("fm:template.admin.project_group.list") - @RequiresPermissions({ "project.group:view" }) - @PermissionTag(name = "SVN浏览账号", tag = "SVN账号管理") + @NutzRequiresPermissions(value = "project.group:view", name = "SVN浏览账号", tag = "SVN账号管理", enable = true) public Pagination list(@Param(value = "pageNumber", df = "1") Integer page, @Param("pj") String pj, HttpServletRequest req) { req.setAttribute("pj", pj); return projectGroupService.getObjListByPager(page, 20, Cnd.where("pj", "=", pj)); @@ -36,8 +35,7 @@ public class AdminProjectGroupAct extends BaseAction { @At @Ok("fm:template.admin.project_group.add") - @RequiresPermissions({ "project.group:add" }) - @PermissionTag(name = "添加项目用户组", tag = "SVN账号管理", enable = true) + @NutzRequiresPermissions(value = "project.group:add", name = "添加项目用户组", tag = "SVN账号管理", enable = true) public String add(@Param("pj") String pj) { return pj; } @@ -45,7 +43,6 @@ public class AdminProjectGroupAct extends BaseAction { @At @Ok("json") @RequiresPermissions("project.group:add") - @PermissionTag(name = "添加项目用户组", tag = "SVN账号管理", enable = false) public Message o_save(@Param("::pgu.") PjGr group, HttpServletRequest req) { PjGr old = projectGroupService.fetch(Cnd.where("pj", "=", group.getPj()).and("gr", "=", group.getGr())); if (Lang.isEmpty(old)) { @@ -57,8 +54,7 @@ public class AdminProjectGroupAct extends BaseAction { @At @Ok("json") - @RequiresPermissions("project.group:delete") - @PermissionTag(name = "删除项目用户组", tag = "SVN账号管理", enable = true) + @NutzRequiresPermissions(value = "project.group:delete", name = "删除项目用户组", tag = "SVN账号管理", enable = true) public Message delete(@Param("pj") String pj, @Param("gr") String gr, HttpServletRequest req) { projectGroupService.delete(pj, gr); return Message.success("ok", req); diff --git a/src/main/java/com/rekoe/module/admin/AdminProjectGroupUsrAct.java b/src/main/java/com/rekoe/module/admin/AdminProjectGroupUsrAct.java index ef06f0d..940c485 100644 --- a/src/main/java/com/rekoe/module/admin/AdminProjectGroupUsrAct.java +++ b/src/main/java/com/rekoe/module/admin/AdminProjectGroupUsrAct.java @@ -20,7 +20,6 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; -import com.rekoe.annotation.PermissionTag; import com.rekoe.common.Message; import com.rekoe.common.page.Pagination; import com.rekoe.domain.Pj; @@ -51,7 +50,6 @@ public class AdminProjectGroupUsrAct extends BaseAction { @At @Ok("fm:template.admin.project_group_usr.list") @RequiresPermissions({ "project.group:view" }) - @PermissionTag(name = "SVN浏览账号", tag = "SVN账号管理") public Pagination list(@Param(value = "pageNumber", df = "1") int page, @Param("pj") String pj, @Param("gr") String gr, HttpServletRequest req) { req.setAttribute("pj", pj); req.setAttribute("gr", gr); @@ -64,7 +62,6 @@ public class AdminProjectGroupUsrAct extends BaseAction { @At @Ok("fm:template.admin.project_group_usr.add") @RequiresPermissions({ "project.group:add" }) - @PermissionTag(name = "添加项目组用户", tag = "SVN账号管理", enable = true) public String add(@Param("pj") String pj, @Param("gr") String gr, HttpServletRequest req) { req.setAttribute("pj", pj); req.setAttribute("gr", gr); @@ -75,7 +72,6 @@ public class AdminProjectGroupUsrAct extends BaseAction { @At @Ok("json") @RequiresPermissions("project.group:add") - @PermissionTag(name = "添加项目组用户", tag = "SVN账号管理", enable = false) public Message o_save(@Param("pj") String pj, @Param("gr") String gr, @Param("usrs") String[] usrs, HttpServletRequest req) { if (usrs == null || usrs.length == 0) { return Message.error("error", req); @@ -98,7 +94,6 @@ public class AdminProjectGroupUsrAct extends BaseAction { @At @Ok("json") @RequiresPermissions("project.group:delete") - @PermissionTag(name = "删除项目组用户", tag = "SVN账号管理", enable = true) public Message delete(@Param("pj") String pj, @Param("gr") String gr, @Param("usr") String usr, HttpServletRequest req) { projectGroupUsrService.delete(pj, gr, usr); svnService.exportConfig(pj); @@ -117,7 +112,6 @@ public class AdminProjectGroupUsrAct extends BaseAction { @At @Ok("json") @RequiresPermissions("project.group:add") - @PermissionTag(name = "添加项目组用户", tag = "SVN账号管理", enable = false) public Message all_email(@Param("pj") String pj, HttpServletRequest req) { Pj project = projectService.get(pj); ProjectConfig conf = projectConfigService.get(); @@ -129,7 +123,6 @@ public class AdminProjectGroupUsrAct extends BaseAction { @At @Ok("json") @RequiresPermissions("project.group:add") - @PermissionTag(name = "添加项目组用户", tag = "SVN账号管理", enable = false) public Message email(@Param("pj") String pj, @Param("usr") String usr, HttpServletRequest req) { Pj project = projectService.get(pj); ProjectConfig conf = projectConfigService.get(); @@ -162,7 +155,7 @@ public class AdminProjectGroupUsrAct extends BaseAction { root.put("url", url); List urlList = new ArrayList(); Cnd cnd = Cnd.where("pj", "=", project.getPj()).and("usr", "=", usr.getUsr()); - List list = projectGroupUsrService.query(cnd,null); + List list = projectGroupUsrService.query(cnd, null); if (Lang.isEmpty(list)) { log.errorf("Cant Not Set User %s Project %s Gruop", usr.getUsr(), project.getPj()); return; diff --git a/src/main/java/com/rekoe/module/admin/AdminRoleAct.java b/src/main/java/com/rekoe/module/admin/AdminRoleAct.java index 083efbe..bdb6c4c 100644 --- a/src/main/java/com/rekoe/module/admin/AdminRoleAct.java +++ b/src/main/java/com/rekoe/module/admin/AdminRoleAct.java @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletRequest; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; +import org.nutz.integration.shiro.annotation.NutzRequiresPermissions; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Lang; @@ -14,7 +15,6 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; -import com.rekoe.annotation.PermissionTag; import com.rekoe.common.Message; import com.rekoe.domain.Permission; import com.rekoe.domain.PermissionCategory; @@ -44,16 +44,14 @@ public class AdminRoleAct { @At @Ok("fm:template.admin.user.role.list") - @RequiresPermissions("system.role:view") - @PermissionTag(name = "浏览角色", tag = "角色管理") + @NutzRequiresPermissions(value = "system.role:view", name = "浏览角色", tag = "角色管理", enable = true) public Object list(@Param(value = "pageNumber", df = "1") int pageNumber) { return roleService.getRoleListByPager(pageNumber, 20); } @At @Ok("fm:template.admin.user.role.edit") - @RequiresPermissions("system.role:edit") - @PermissionTag(name = "编辑角色", tag = "角色管理") + @NutzRequiresPermissions(value = "system.role:edit", name = "编辑角色", tag = "角色管理", enable = true) public Object edit(@Param("id") long id, HttpServletRequest req) { Role role = roleService.view(id); List pcList = permissionCategoryService.list(); @@ -81,8 +79,7 @@ public class AdminRoleAct { */ @At @Ok("fm:template.admin.user.role.add") - @RequiresPermissions("system.role:add") - @PermissionTag(name = "添加角色", tag = "角色管理") + @NutzRequiresPermissions(value = "system.role:add", name = "添加角色", tag = "角色管理", enable = true) public List add(HttpServletRequest req) { return permissionCategoryService.list(); } @@ -90,7 +87,6 @@ public class AdminRoleAct { @At @Ok(">>:${obj==true?'/role/list.rk':'/admin/common/unauthorized.rk'}") @RequiresPermissions("system.role:add") - @PermissionTag(name = "添加角色", tag = "角色管理", enable = false) public boolean save(@Param("name") String name, @Param("description") String desc, @Param("authorities") int[] ids) { Role role = roleService.fetchByName(name); if (Lang.isEmpty(role)) { @@ -106,8 +102,7 @@ public class AdminRoleAct { @At @Ok("json") - @RequiresPermissions("system.role:delete") - @PermissionTag(name = "删除角色", tag = "角色管理") + @NutzRequiresPermissions(value = "system.role:delete", name = "删除角色", tag = "角色管理", enable = true) public Message delete(@Param("ids") Long[] uids, HttpServletRequest req) { for (Long id : uids) { roleService.delete(id); diff --git a/src/main/java/com/rekoe/module/admin/AdminSvnUserAct.java b/src/main/java/com/rekoe/module/admin/AdminSvnUserAct.java index 5ddef7e..0c2b30f 100644 --- a/src/main/java/com/rekoe/module/admin/AdminSvnUserAct.java +++ b/src/main/java/com/rekoe/module/admin/AdminSvnUserAct.java @@ -80,7 +80,8 @@ public class AdminSvnUserAct extends BaseAction { boolean isEmail = Strings.isEmail(user.getEmail()); if (isOk && isEmail) { user.setPsw(EncryptUtil.encrypt(R.UU64().substring(0, 10))); - isOk = svnUserService.insert(user); + svnUserService.insert(user); + isOk = true; } else { isOk = false; } diff --git a/src/main/java/com/rekoe/module/admin/AdminUserAct.java b/src/main/java/com/rekoe/module/admin/AdminUserAct.java index 1e2cac4..e72aee4 100644 --- a/src/main/java/com/rekoe/module/admin/AdminUserAct.java +++ b/src/main/java/com/rekoe/module/admin/AdminUserAct.java @@ -13,22 +13,24 @@ import org.apache.shiro.crypto.RandomNumberGenerator; import org.apache.shiro.crypto.SecureRandomNumberGenerator; import org.apache.shiro.crypto.hash.Sha256Hash; import org.apache.shiro.subject.Subject; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.integration.shiro.annotation.NutzRequiresPermissions; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Lang; import org.nutz.lang.Mirror; +import org.nutz.lang.Strings; import org.nutz.mvc.NutConfigException; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Attr; import org.nutz.mvc.annotation.Fail; -import org.nutz.mvc.annotation.Filters; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import org.nutz.web.Webs; import org.nutz.web.ajax.Ajax; import com.alibaba.druid.util.DruidWebUtils; -import com.rekoe.annotation.PermissionTag; import com.rekoe.common.Message; import com.rekoe.common.page.Pagination; import com.rekoe.domain.Role; @@ -59,35 +61,29 @@ public class AdminUserAct { @At @Ok("fm:template.admin.user.list") - @RequiresPermissions({ "system.user:view" }) - @PermissionTag(name = "浏览账号", tag = "账号管理") + @NutzRequiresPermissions(value = "system.user:view", name = "浏览账号", tag = "账号管理", enable = true) public Pagination list(@Param(value = "pageNumber", df = "1") int pageNumber) { return userService.getUserListByPager(pageNumber, 20); } @At @Ok("fm:template.admin.user.add") - @RequiresPermissions({ "system.user:add" }) - @PermissionTag(name = "添加账号", tag = "账号管理", enable = false) + @RequiresPermissions("system.user:add") public List add() { return roleService.list(); } @At @Ok("json") - @RequiresPermissions("system.user:delete") - @PermissionTag(name = "删除账号", tag = "账号管理") + @NutzRequiresPermissions(value = "system.user:delete", name = "删除账号", tag = "账号管理", enable = true) public Message delete(@Param("ids") int[] uids, HttpServletRequest req) { - for (int id : uids) { - userService.delete(id); - } + userService.update(Chain.make("is_del", true), Cnd.where("id", "id", uids)); return Message.success("admin.message.success", req); } @At @Ok(">>:${obj==true?'/admin/user/list.rk':'/admin/common/unauthorized.rk'}") - @RequiresPermissions({ "system.user:add" }) - @PermissionTag(name = "添加账号", tag = "账号管理", enable = false) + @NutzRequiresPermissions(value = "system.user:add", name = "添加账号", tag = "账号管理", enable = true) public boolean save(HttpServletRequest req, @Param("username") String username, @Param("password") String password, @Param("isEnabled") boolean isEnabled, @Param("roleIds") int[] roleIds) { return userService.save(username, password, isEnabled, req.getRemoteAddr(), roleIds); } @@ -95,21 +91,19 @@ public class AdminUserAct { @At("/check/username") @Ok("raw") public boolean checkName(@Param("username") String username) { - User user = userService.fetchByName(username); - return Lang.isEmpty(user) ? true : false; + return Lang.isEmpty(userService.fetchByName(username)) ? true : false; } @At("/check_email") @Ok("raw") public boolean checkEmail(@Param("email") String email) { - return StringUtils.isBlank(email) ? false : email.matches("\\w+@\\w+\\.(com\\.cn)|\\w+@\\w+\\.(com|cn)"); + return Strings.isEmail(email); } @At @Ok("fm:template.admin.user.edit") @Fail("json") - @RequiresPermissions({ "system.user:edit" }) - @PermissionTag(name = "编辑账号", tag = "账号管理") + @NutzRequiresPermissions(value = "system.user:edit", name = "编辑账号", tag = "账号管理", enable = true) public User edit(@Attr(Webs.ME) User user, @Param("id") long id, HttpServletRequest req) { User editUser = userService.view(id); if (Lang.isEmpty(editUser) || editUser.isLocked()) { @@ -131,7 +125,7 @@ public class AdminUserAct { @At @Ok(">>:/admin/user/list") - @RequiresPermissions({ "system.user:edit" }) + @RequiresPermissions("system.user:edit") public Object update(@Param("id") long id, @Param("allServer") Boolean allServer, @Param("serverIds") Integer[] serverIds, @Param("roleIds") Integer[] roleIds) { User user = userService.fetch(id); userService.removeUserUpdata(user); @@ -145,8 +139,7 @@ public class AdminUserAct { */ @At @Ok("json") - @RequiresPermissions("system.user:lock") - @PermissionTag(name = "锁定账号", tag = "账号管理") + @NutzRequiresPermissions(value = "system.user:lock", name = "锁定账号", tag = "账号管理", enable = true) public Message lock(@Param("id") long id, HttpServletRequest req) { User user = userService.view(id); if (Lang.isEmpty(user)) { @@ -178,6 +171,7 @@ public class AdminUserAct { @At("/profile/edit") @Ok("fm:template.admin.profile.edit") + @RequiresUser public Subject profileEdit() { return SecurityUtils.getSubject(); } @@ -188,7 +182,6 @@ public class AdminUserAct { @At @Ok("fm:template.admin.user.add_user") @RequiresPermissions("system.user:add") - @PermissionTag(name = "添加账号", tag = "账号管理") public void add_user() { } @@ -219,7 +212,6 @@ public class AdminUserAct { @At("/profile/re_update") @Ok(">>:${obj?'/admin/main':'/admin/common/unauthorized.rk'}") - @Filters public boolean regUpate(@Param("username") String username, @Param("password") String password, @Attr("me") User suser) { if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) { return false; diff --git a/src/main/java/com/rekoe/module/admin/PermissionAct.java b/src/main/java/com/rekoe/module/admin/PermissionAct.java index df26c43..9766279 100644 --- a/src/main/java/com/rekoe/module/admin/PermissionAct.java +++ b/src/main/java/com/rekoe/module/admin/PermissionAct.java @@ -5,6 +5,7 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.integration.shiro.annotation.NutzRequiresPermissions; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.mvc.annotation.At; @@ -39,24 +40,21 @@ public class PermissionAct { @At @Ok("fm:template.admin.user.permission.list") - @RequiresPermissions({ "system.permission:view" }) - @PermissionTag(name = "浏览权限", tag = "权限管理") + @NutzRequiresPermissions(value = "system.permission:view", name = "浏览权限", tag = "权限管理", enable = true) public Pagination list(@Param(value = "pageNumber", df = "1") int pageNumber) { return permissionService.getPermissionListByPager(pageNumber); } @At("/list_category/?") @Ok("fm:template.admin.user.permission.list") - @RequiresPermissions({ "system.permission:view" }) - @PermissionTag(name = "浏览权限分类", tag = "权限管理", enable = false) - public Pagination listCategory(String id, @Param(value = "pageNumber", df = "1") Integer pageNumber) { + @RequiresPermissions("system.permission:view") + public Pagination listCategory(String id, @Param(value = "pageNumber", df = "1") int pageNumber) { return permissionService.getPermissionListByPager(pageNumber, id); } @At @Ok("fm:template.admin.user.permission.edit") - @RequiresPermissions({ "system.permission:edit" }) - @PermissionTag(name = "编辑限分类", tag = "权限管理") + @NutzRequiresPermissions(value = "system.permission:edit", name = "编辑限分类", tag = "权限管理", enable = true) public List edit(long id, HttpServletRequest req) { Permission permission = permissionService.fetch(id); req.setAttribute("permission", permission); @@ -65,8 +63,7 @@ public class PermissionAct { @At @Ok("fm:template.admin.user.permission.add") - @RequiresPermissions({ "system.permission:add" }) - @PermissionTag(name = "添加权限", tag = "权限管理") + @NutzRequiresPermissions(value = "system.permission:add", name = "添加权限", tag = "权限管理", enable = true) public List add() { List list = permissionCategoryService.list(); return list; @@ -74,8 +71,7 @@ public class PermissionAct { @At @Ok("json") - @RequiresPermissions({ "system.permission:delete" }) - @PermissionTag(name = "删除权限", tag = "权限管理") + @NutzRequiresPermissions(value = "system.permission:delete", name = "删除权限", tag = "权限管理", enable = true) public Message delete(@Attr(Webs.ME) User user, @Param("id") long id, HttpServletRequest req) { Permission permission = permissionService.fetch(id); if (permission.isLocked() && !user.isSystem()) { @@ -87,8 +83,7 @@ public class PermissionAct { @At @Ok(">>:/admin/permission/list.rk") - @RequiresPermissions({ "system.permission:edit" }) - @PermissionTag(name = "编辑权限", tag = "权限管理", enable = false) + @RequiresPermissions("system.permission:edit") public boolean update(@Param("::permission.") Permission permission, @Param("description") String description, @Param("name") String name, @Param("id") String id) { permission.setName(name); permission.setDescription(description); diff --git a/src/main/java/com/rekoe/module/admin/PermissionCategoryAct.java b/src/main/java/com/rekoe/module/admin/PermissionCategoryAct.java index 4277359..c5d4d66 100644 --- a/src/main/java/com/rekoe/module/admin/PermissionCategoryAct.java +++ b/src/main/java/com/rekoe/module/admin/PermissionCategoryAct.java @@ -11,7 +11,6 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; -import com.rekoe.annotation.PermissionTag; import com.rekoe.common.Message; import com.rekoe.common.page.Pagination; import com.rekoe.domain.PermissionCategory; @@ -33,7 +32,6 @@ public class PermissionCategoryAct { @At @Ok("fm:template.admin.user.permission_category.list") @RequiresPermissions({ "system.permission:view" }) - @PermissionTag(name = "浏览权限", tag = "权限管理", enable = false) public Pagination list(@Param(value = "pageNumber", df = "1") Integer pageNumber) { return permissionCategoryService.getPermissionCategoryListByPager(pageNumber); } @@ -41,7 +39,6 @@ public class PermissionCategoryAct { @At @Ok("fm:template.admin.user.permission_category.edit") @RequiresPermissions({ "system.permission:edit" }) - @PermissionTag(name = "编辑权限", tag = "权限管理", enable = false) public PermissionCategory edit(String id) { return permissionCategoryService.fetchByID(id); } @@ -49,7 +46,6 @@ public class PermissionCategoryAct { @At @Ok(">>:/admin/permission/category/list.rk") @RequiresPermissions({ "system.permission:edit" }) - @PermissionTag(name = "编辑权限", tag = "权限管理", enable = false) public boolean update(@Param("name") String name, @Param("id") String id) { permissionCategoryService.update(Chain.make("name", name), Cnd.where("id", "=", id)); return true; @@ -64,7 +60,6 @@ public class PermissionCategoryAct { @At @Ok(">>:/admin/permission/category/list.rk") @RequiresPermissions({ "system.permission:add" }) - @PermissionTag(name = "添加权限", tag = "权限管理", enable = false) public void save(@Param("name") String name) { PermissionCategory pc = new PermissionCategory(); pc.setName(name); @@ -74,7 +69,6 @@ public class PermissionCategoryAct { @At @Ok("json") @RequiresPermissions({ "system.permission:delete" }) - @PermissionTag(name = "删除权限", tag = "权限管理", enable = false) public Message delete(@Param("id") String id, HttpServletRequest req) { PermissionCategory pc = permissionCategoryService.fetchByID(id); if (pc.isLocked()) { diff --git a/src/main/java/com/rekoe/service/AuthorityService.java b/src/main/java/com/rekoe/service/AuthorityService.java new file mode 100644 index 0000000..524e1e7 --- /dev/null +++ b/src/main/java/com/rekoe/service/AuthorityService.java @@ -0,0 +1,12 @@ +package com.rekoe.service; + +public interface AuthorityService { + + /** + * 扫描RequiresPermissions和RequiresRoles注解 + * + * @param pkg + * 需要扫描的package + */ + void initFormPackage(String... pkgs); +} diff --git a/src/main/java/com/rekoe/service/AuthorityServiceImpl.java b/src/main/java/com/rekoe/service/AuthorityServiceImpl.java new file mode 100644 index 0000000..00ab00f --- /dev/null +++ b/src/main/java/com/rekoe/service/AuthorityServiceImpl.java @@ -0,0 +1,161 @@ +package com.rekoe.service; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.integration.shiro.annotation.NutzRequiresPermissions; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.ContinueLoop; +import org.nutz.lang.Each; +import org.nutz.lang.ExitLoop; +import org.nutz.lang.Lang; +import org.nutz.lang.LoopException; +import org.nutz.resource.Scans; + +import com.rekoe.domain.Permission; +import com.rekoe.domain.PermissionCategory; + +@IocBean(name = "authorityService") +public class AuthorityServiceImpl implements AuthorityService { + + @Inject + private Dao dao; + + class PermissionTagClzz { + + private String premission; + private String tag; + private String name; + + public PermissionTagClzz(String premission, String tag, String name) { + super(); + this.premission = premission; + this.tag = tag; + this.name = name; + } + + public String getPremission() { + return premission; + } + + public void setPremission(String premission) { + this.premission = premission; + } + + public String getTag() { + return tag; + } + + public void setTag(String tag) { + this.tag = tag; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + } + + public void initFormPackage(String... pkgs) { + List> allClazz = new ArrayList<>(); + for (String pkg : pkgs) { + List> scanPackage = Scans.me().scanPackage(pkg); + allClazz.addAll(scanPackage); + } + Set rpTagNames = new HashSet<>(); + final Set permissions = new HashSet(); + final Map perTagMap = new HashMap<>(); + for (Class klass : allClazz) { + for (Method method : klass.getMethods()) { + NutzRequiresPermissions rp = method.getAnnotation(NutzRequiresPermissions.class); + if (rp != null && rp.value() != null) { + if (rp.enable() == false) + continue; + rpTagNames.add(rp.tag()); + for (String permission : rp.value()) { + if (permission != null && !permission.endsWith("*")) { + permissions.add(permission); + perTagMap.put(permission, new PermissionTagClzz(permission, rp.tag(), rp.name())); + } + } + } + } + } + + // 整理出 需要添加权限的所有的权限分类 + final Iterator> iter = perTagMap.entrySet().iterator(); + final Set perTags = new HashSet(); + while (iter.hasNext()) { + Entry entry = iter.next(); + PermissionTagClzz ptc = entry.getValue(); + String name = ptc.getTag(); + perTags.add(name); + } + + dao.each(PermissionCategory.class, null, new Each() { + public void invoke(int index, PermissionCategory ele, int length) throws ExitLoop, ContinueLoop, LoopException { + perTags.remove(ele.getName()); + } + }); + + // 把分类数据插入到数据库 + final Map tagIds = new HashMap(); + for (String name : perTags) { + PermissionCategory pc = new PermissionCategory(); + pc.setLocked(true); + pc.setName(name); + dao.insert(pc); + } + + // 把全部权限查出来一一检查 + dao.each(Permission.class, null, new Each() { + public void invoke(int index, Permission ele, int length) throws ExitLoop, ContinueLoop, LoopException { + permissions.remove(ele.getName()); + perTagMap.remove(ele.getName()); + } + }); + + Iterator> iterator = perTagMap.entrySet().iterator(); + Set tagNames = new HashSet(); + while (iterator.hasNext()) { + Entry entry = iterator.next(); + tagNames.add(entry.getValue().getTag()); + } + dao.each(PermissionCategory.class, Cnd.where("name", "in", tagNames), new Each() { + public void invoke(int index, PermissionCategory ele, int length) throws ExitLoop, ContinueLoop, LoopException { + tagIds.put(ele.getName(), ele.getId()); + } + }); + + List newSet = new ArrayList<>(); + final Iterator> $iter = perTagMap.entrySet().iterator(); + while ($iter.hasNext()) { + Entry entry = $iter.next(); + PermissionTagClzz ptc = entry.getValue(); + String name = ptc.getTag(); + Permission p = new Permission(); + p.setDescription(ptc.getName()); + p.setPermissionCategoryId(tagIds.get(name)); + p.setName(entry.getKey()); + newSet.add(p); + } + + if (!Lang.isEmpty(newSet)) { + dao.fastInsert(newSet); + } + } +} diff --git a/src/main/java/com/rekoe/service/BaseService.java b/src/main/java/com/rekoe/service/BaseService.java index 6dcc9cd..1b3becb 100644 --- a/src/main/java/com/rekoe/service/BaseService.java +++ b/src/main/java/com/rekoe/service/BaseService.java @@ -62,18 +62,18 @@ public class BaseService extends IdEntityService { public void delete(String[] ids) { dao().clear(getEntityClass(), Cnd.where("id", "in", ids)); } + public void delete(String id) { dao().clear(getEntityClass(), Cnd.where("id", "in", id)); } - public boolean insert(T t) { + public T insert(T t) { try { - dao().insert(t); + return dao().insert(t); } catch (Exception e) { log.error(e); - return false; + return null; } - return true; } protected String getRandomStr(String str, String num) { diff --git a/src/main/java/com/rekoe/service/PermissionCategoryService.java b/src/main/java/com/rekoe/service/PermissionCategoryService.java index 6910cb3..e33d45c 100644 --- a/src/main/java/com/rekoe/service/PermissionCategoryService.java +++ b/src/main/java/com/rekoe/service/PermissionCategoryService.java @@ -12,11 +12,9 @@ import org.nutz.service.IdEntityService; import com.rekoe.common.page.Pagination; import com.rekoe.domain.PermissionCategory; + /** - * @author 科技㊣²º¹³ - * 2014年2月3日 下午4:48:45 - * http://www.rekoe.com - * QQ:5382211 + * @author 科技㊣²º¹³ 2014年2月3日 下午4:48:45 http://www.rekoe.com QQ:5382211 */ @IocBean(args = { "refer:dao" }) public class PermissionCategoryService extends IdEntityService { @@ -36,8 +34,8 @@ public class PermissionCategoryService extends IdEntityService list = dao().query(PermissionCategory.class, null, pager); pager.setRecordCount(dao().count(PermissionCategory.class, null)); diff --git a/src/main/java/com/rekoe/service/PermissionService.java b/src/main/java/com/rekoe/service/PermissionService.java index fda8ded..0ee5ecc 100644 --- a/src/main/java/com/rekoe/service/PermissionService.java +++ b/src/main/java/com/rekoe/service/PermissionService.java @@ -44,16 +44,16 @@ public class PermissionService extends IdEntityService { return map; } - public void insert(Permission permission) { - dao().insert(permission); + public Permission insert(Permission permission) { + return dao().insert(permission); } public Permission view(Long id) { return fetch(id); } - public void update(Permission permission) { - dao().update(permission); + public int update(Permission permission) { + return dao().update(permission); } protected int getPageNumber(Integer pageNumber) { diff --git a/src/main/java/com/rekoe/service/ProjectConfigService.java b/src/main/java/com/rekoe/service/ProjectConfigService.java index 76487ee..858f0b9 100644 --- a/src/main/java/com/rekoe/service/ProjectConfigService.java +++ b/src/main/java/com/rekoe/service/ProjectConfigService.java @@ -35,9 +35,8 @@ public class ProjectConfigService extends BaseService { dao().update(conf); return true; } - public boolean update(ProjectConfig conf) { - dao().update(conf); - return true; + public int update(ProjectConfig conf) { + return dao().update(conf); } public void init() { diff --git a/src/main/java/com/rekoe/service/ProjectService.java b/src/main/java/com/rekoe/service/ProjectService.java index 4868a97..c1fcc72 100644 --- a/src/main/java/com/rekoe/service/ProjectService.java +++ b/src/main/java/com/rekoe/service/ProjectService.java @@ -175,8 +175,8 @@ public class ProjectService extends BaseService { dao().clear(getEntityClass(), Cnd.where("pj", "=", pj)); } - public void update(Pj pj) { - dao().update(pj); + public int update(Pj pj) { + return dao().update(pj); } /** diff --git a/src/main/java/com/rekoe/service/RoleService.java b/src/main/java/com/rekoe/service/RoleService.java index 2ee0bf5..69e6550 100644 --- a/src/main/java/com/rekoe/service/RoleService.java +++ b/src/main/java/com/rekoe/service/RoleService.java @@ -32,10 +32,9 @@ public class RoleService extends BaseService { return query(null, null); } - public boolean insert(Role role) { + public Role insert(Role role) { role = dao().insert(role); - dao().insertRelation(role, "permissions"); - return true; + return dao().insertRelation(role, "permissions"); } public void delete(Long id) { @@ -48,8 +47,8 @@ public class RoleService extends BaseService { return dao().fetchLinks(fetch(id), "permissions"); } - public void update(Role role) { - dao().update(role); + public int update(Role role) { + return dao().update(role); } public Role fetchByName(String name) { diff --git a/src/main/java/com/rekoe/service/UserService.java b/src/main/java/com/rekoe/service/UserService.java index c300442..6e56601 100644 --- a/src/main/java/com/rekoe/service/UserService.java +++ b/src/main/java/com/rekoe/service/UserService.java @@ -1,36 +1,20 @@ package com.rekoe.service; -import java.lang.reflect.Method; import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; import org.apache.commons.lang3.StringUtils; -import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.crypto.SecureRandomNumberGenerator; import org.apache.shiro.crypto.hash.Sha256Hash; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.lang.ContinueLoop; -import org.nutz.lang.Each; -import org.nutz.lang.ExitLoop; import org.nutz.lang.Lang; -import org.nutz.lang.LoopException; import org.nutz.lang.Times; import org.nutz.lang.random.R; -import org.nutz.resource.Scans; -import com.rekoe.annotation.PermissionTag; import com.rekoe.common.page.Pagination; -import com.rekoe.domain.Permission; -import com.rekoe.domain.PermissionCategory; import com.rekoe.domain.Role; import com.rekoe.domain.User; @@ -51,8 +35,8 @@ public class UserService extends BaseService { return query(null, null); } - public void update(User user) { - dao().update(user); + public int update(User user) { + return dao().update(user); } public void update(long uid, String password, boolean isLocked, Integer[] ids) { @@ -78,10 +62,9 @@ public class UserService extends BaseService { dao().update(User.class, Chain.make("password", new Sha256Hash(password, salt, 1024).toBase64()).add("salt", salt), Cnd.where("id", "=", uid)); } - public boolean insert(User user) { + public User insert(User user) { user = dao().insert(user); - dao().insertRelation(user, "roles"); - return true; + return dao().insertRelation(user, "roles"); } public boolean save(String username, String password, boolean isEnabled, String addr, int[] roleIds) { @@ -184,136 +167,6 @@ public class UserService extends BaseService { dao().update(user, "^(locked)$"); } - class PermissionTagClzz { - - private String premission; - private String tag; - private String name; - - public PermissionTagClzz(String premission, String tag, String name) { - super(); - this.premission = premission; - this.tag = tag; - this.name = name; - } - - public String getPremission() { - return premission; - } - - public void setPremission(String premission) { - this.premission = premission; - } - - public String getTag() { - return tag; - } - - public void setTag(String tag) { - this.tag = tag; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - } - - public void initFormPackages(String... pkgs) { - List> allClazz = new ArrayList<>(); - for (String pkg : pkgs) { - List> scanPackage = Scans.me().scanPackage(pkg); - allClazz.addAll(scanPackage); - } - Set rpTagNames = new HashSet<>(); - final Set permissions = new HashSet(); - final Map perTagMap = new HashMap<>(); - for (Class klass : allClazz) { - for (Method method : klass.getMethods()) { - RequiresPermissions rp = method.getAnnotation(RequiresPermissions.class); - if (rp != null && rp.value() != null) { - PermissionTag rpTag = method.getAnnotation(PermissionTag.class); - if (rpTag == null || rpTag.enable() == false) - continue; - rpTagNames.add(rpTag.tag()); - for (String permission : rp.value()) { - if (permission != null && !permission.endsWith("*")) { - permissions.add(permission); - perTagMap.put(permission, new PermissionTagClzz(permission, rpTag.tag(), rpTag.name())); - } - } - } - } - } - - // 整理出 需要添加权限的所有的权限分类 - final Iterator> iter = perTagMap.entrySet().iterator(); - final Set perTags = new HashSet(); - while (iter.hasNext()) { - Entry entry = iter.next(); - PermissionTagClzz ptc = entry.getValue(); - String name = ptc.getTag(); - perTags.add(name); - } - - dao().each(PermissionCategory.class, null, new Each() { - public void invoke(int index, PermissionCategory ele, int length) throws ExitLoop, ContinueLoop, LoopException { - perTags.remove(ele.getName()); - } - }); - - // 把分类数据插入到数据库 - final Map tagIds = new HashMap(); - for (String name : perTags) { - PermissionCategory pc = new PermissionCategory(); - pc.setLocked(true); - pc.setName(name); - dao().insert(pc); - } - - // 把全部权限查出来一一检查 - dao().each(Permission.class, null, new Each() { - public void invoke(int index, Permission ele, int length) throws ExitLoop, ContinueLoop, LoopException { - permissions.remove(ele.getName()); - perTagMap.remove(ele.getName()); - } - }); - - Iterator> iterator = perTagMap.entrySet().iterator(); - Set tagNames = new HashSet(); - while (iterator.hasNext()) { - Entry entry = iterator.next(); - tagNames.add(entry.getValue().getTag()); - } - dao().each(PermissionCategory.class, Cnd.where("name", "in", tagNames), new Each() { - public void invoke(int index, PermissionCategory ele, int length) throws ExitLoop, ContinueLoop, LoopException { - tagIds.put(ele.getName(), ele.getId()); - } - }); - - List newSet = new ArrayList<>(); - final Iterator> $iter = perTagMap.entrySet().iterator(); - while ($iter.hasNext()) { - Entry entry = $iter.next(); - PermissionTagClzz ptc = entry.getValue(); - String name = ptc.getTag(); - Permission p = new Permission(); - p.setDescription(ptc.getName()); - p.setLocked(true); - p.setPermissionCategoryId(tagIds.get(name)); - p.setName(entry.getKey()); - newSet.add(p); - } - - if (!Lang.isEmpty(newSet)) { - dao().fastInsert(newSet); - } - } - public void loadRolePermission(User user) { List roleList = user.getRoles(); for (Role role : roleList) { diff --git a/src/main/java/com/rekoe/ssh/PublicKeyAuthentication.java b/src/main/java/com/rekoe/ssh/PublicKeyAuthentication.java index a3be788..332fe18 100644 --- a/src/main/java/com/rekoe/ssh/PublicKeyAuthentication.java +++ b/src/main/java/com/rekoe/ssh/PublicKeyAuthentication.java @@ -43,6 +43,7 @@ public class PublicKeyAuthentication { sess.close(); /* Close the connection */ conn.close(); + br.close(); } catch (IOException e) { e.printStackTrace(System.err); System.exit(2); diff --git a/src/main/resources/conf.properties b/src/main/resources/conf.properties index 1916c06..ea6a2cb 100644 --- a/src/main/resources/conf.properties +++ b/src/main/resources/conf.properties @@ -1,5 +1,7 @@ -db.url=jdbc:mysql://192.168.1.223:3306/rk_svnadmin?useUnicode=true&characterEncoding=utf-8 +#db.url=jdbc:mysql://192.168.3.2:3306/rk_svnadmin?useUnicode=true&characterEncoding=utf-8 +db.url=jdbc:mysql://192.168.3.223:3306/rk_svnadmin?useUnicode=true&characterEncoding=utf-8 db.username=root +#db.password=kfzx_sy!@#% db.password=root db.maxActive=50