我正在使用Java,SpringMVC,Hibernate和MySql。
我有一个问题。在数据库中我有用户实体。有些用户有角色Admin。 如果用户具有角色管理员,则可以创建项目旅行,例如"前往非洲"并且可以加入另一个人。
当具有管理员角色的用户登录系统时,在第一个站点中,他会看到由他创建的项目。他可以点击任何项目。对于考试"去非洲"。然后他加入了朋友列表。 但。 链接到特定项目如下:
<a href="managementProject?idProject=${id_project}">ProjectXX</a>
并且在控制器中我有@RequestParam("idProject")
但它确实是愚蠢的解决方案,因为URL看起来像:
localhost:2233/managementProject?idSchool=5
如果我在URL中更改idSchool param,我可以访问某个项目。 我不知道如何发送这个值Post方法(因为这是元素,而不是形式)
所以我写了一个方法来检查idProject
是否与登录的人创建的项目一致:
private boolean checkAuth(int idProject,User user){
List<Project> projectList = new ArrayList<Project>(user.getProjectsAdministrators());
for(Project project:projectList){
if (project.getId_project()==idProject){
return true;
}
}
return false;
}
如果为true,则用户可以将人员添加到项目中。如果为false,则modelAndView返回403页面(类似于&#34;您没有权限&#34; 但我不知道这不是真正好的解决方案。也许有人有更好的? 抱歉我的英文。
谢谢!