Skip to content

Commit

Permalink
Almost done!
Browse files Browse the repository at this point in the history
  • Loading branch information
silenceleaf committed Apr 18, 2014
1 parent a80292b commit 94b321d
Show file tree
Hide file tree
Showing 30 changed files with 816 additions and 222 deletions.
2 changes: 1 addition & 1 deletion .idea/dataSources.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

This file was deleted.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

39 changes: 33 additions & 6 deletions Synergy.iml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,21 @@
<facet type="hibernate" name="Hibernate">
<configuration>
<datasource-map>
<unit-entry name="createSessionFactory" value="343e5d92-fe05-4bf7-9dfa-ba4e046fdee8" />
<unit-entry name="hibernate.cfg.xml" value="343e5d92-fe05-4bf7-9dfa-ba4e046fdee8" />
</datasource-map>
<naming-strategy-map />
<deploymentDescriptor name="hibernate.cfg.xml" url="file://$MODULE_DIR$/src/main/resources/hibernate.cfg.xml" />
<naming-strategy-map>
<unit-entry name="createSessionFactory" value="org.springframework.boot.orm.jpa.SpringNamingStrategy" />
<unit-entry name="hibernate.cfg.xml" value="org.springframework.boot.orm.jpa.SpringNamingStrategy" />
</naming-strategy-map>
</configuration>
</facet>
<facet type="Spring" name="Spring">
<configuration>
<fileset id="fileset" name="Spring Application Context" removed="false">
<file>file://$MODULE_DIR$/src/main/java/org/zjy/synergy/config/PersistenceConfig.java</file>
<file>file://$MODULE_DIR$/src/main/java/org/zjy/synergy/config/ApplicationEntrance.java</file>
</fileset>
</configuration>
</facet>
</component>
Expand Down Expand Up @@ -49,10 +60,26 @@
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:1.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:3.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:3.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-web:3.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jetty:1.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-webapp:8.1.14.v20131031" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-xml:8.1.14.v20131031" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:8.1.14.v20131031" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:8.1.14.v20131031" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:8.1.14.v20131031" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:8.1.14.v20131031" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:8.1.14.v20131031" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:8.1.14.v20131031" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:8.1.14.v20131031" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jsp:8.1.14.v20131031" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.orbit:javax.servlet.jsp:2.2.0.v201112011158" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.orbit:javax.servlet:3.0.0.v201112011016" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.orbit:org.apache.jasper.glassfish:2.2.2.v201112011158" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.orbit:javax.servlet.jsp.jstl:1.2.0.v201105211821" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.orbit:org.apache.taglibs.standard.glassfish:1.2.0.v201112081803" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.orbit:javax.el:2.2.0.v201108011116" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.orbit:com.sun.el:2.2.0.v201108011116" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.orbit:org.eclipse.jdt.core:3.7.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:3.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.0.2.RELEASE" level="project" />
Expand Down
51 changes: 0 additions & 51 deletions application.properties

This file was deleted.

2 changes: 1 addition & 1 deletion database/create_schema.sql
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
drop table if exists synergy.bd_authority;
CREATE TABLE synergy.bd_authority
(
pk_authority INTEGER PRIMARY KEY NOT NULL,
pk_authority INTEGER PRIMARY KEY NOT NULL auto_increment,
fk_role INTEGER NOT NULL,
fk_function INTEGER NOT NULL,
ts TEXT,
Expand Down
20 changes: 17 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
</parent>

<properties>
<java.version>1.7</java.version>
<main.basedir>${basedir}/../..</main.basedir>
<spring.version>4.0.2.RELEASE</spring.version>
<hibernate.version>4.3.4.Final</hibernate.version>
Expand All @@ -27,14 +28,21 @@
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>


<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-jetty</artifactId>-->
<!--<artifactId>spring-boot-starter-security</artifactId>-->
<!--</dependency>-->

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-crypto</artifactId>
<version>${spring-security.version}</version>
</dependency>

<dependency>
Expand All @@ -47,6 +55,12 @@
<!--<artifactId>spring-boot-starter-data-jpa</artifactId>-->
<!--</dependency>-->

<!--<dependency>-->
<!--<groupId>org.webjars</groupId>-->
<!--<artifactId>extjs</artifactId>-->
<!--<version>4.2.1.883-1</version>-->
<!--</dependency>-->

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
Expand Down
146 changes: 146 additions & 0 deletions src/main/java/org/zjy/synergy/component/base/Authority.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
package org.zjy.synergy.component.base;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.zjy.synergy.entity.JsonResponse;
import org.zjy.synergy.entity.base.AuthorityEntity;
import org.zjy.synergy.entity.base.FunctionTreeNodeEntity;
import org.zjy.synergy.entity.base.RoleEntity;
import org.zjy.synergy.service.base.DataService;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
* Created by junyan Zhang on 14-4-15.
*/

@Controller
public class Authority {
@Autowired
private SessionFactory sessionFactory;
@Autowired
private DataService dataService;

private String retrieveRoleByName = "from RoleEntity where name = ?";
private String retrieveAuthority = "select fkFunction from AuthorityEntity where fkRole = :roleId";
private String retrieveFunctionByAuthority = "from FunctionTreeNodeEntity where pkFunction in (:functions) and dr = 0";
private String retrieveAllFunction = "from FunctionTreeNodeEntity where dr = 0";
private String retrieveAuthorityByRoleFunction = "from AuthorityEntity where fkRole = :roleId and fkFunction = :functionId";

@RequestMapping(value = "/base/authority", method = RequestMethod.GET)
public String page() {
return "base/authority";
}

@SuppressWarnings("unchecked")
@RequestMapping(value = "/base/authority/createRole", method = RequestMethod.POST)
@ResponseBody
public JsonResponse createRole (String roleName) {
Session session = sessionFactory.openSession();
List<RoleEntity> roleEntityList = session.createQuery(retrieveRoleByName).setParameter(0, roleName).list();
if (roleEntityList.size() > 0)
return new JsonResponse(false);

RoleEntity roleEntity = new RoleEntity();
roleEntity.setName(roleName);
session.save(roleEntity);
session.flush();
session.close();
return new JsonResponse(true);
}

@RequestMapping(value = "/base/authority/deleteRole", method = RequestMethod.POST)
@ResponseBody
public JsonResponse deleteRole (int roleId) {
Session session = sessionFactory.openSession();
RoleEntity roleEntity = (RoleEntity)session.get(RoleEntity.class, roleId);
if (roleEntity == null)
return new JsonResponse(false);

session.delete(roleEntity);
session.flush();
session.close();
return new JsonResponse(true);
}

@SuppressWarnings("unchecked")
@RequestMapping(value = "/base/authority/getAuthority", method = RequestMethod.GET)
@ResponseBody
public JsonResponse getAuthority (int roleId) {
Session session = sessionFactory.openSession();
List<Integer> functionList = session.createQuery(retrieveAuthority).setInteger("roleId", roleId).list();
if (functionList.size() == 0)
return new JsonResponse(true);

List<FunctionTreeNodeEntity> functionTreeNodeEntityList = session.createQuery(retrieveFunctionByAuthority).setParameterList("functions", functionList).list();
JsonResponse jsonResponse = new JsonResponse(true);
for (FunctionTreeNodeEntity functionTreeNodeEntity : functionTreeNodeEntityList) {
jsonResponse.addResponseMsg(dataService.entityToJson(functionTreeNodeEntity));
jsonResponse.setTotal(jsonResponse.getTotal() + 1);
}
return jsonResponse;
}

@SuppressWarnings("unchecked")
@RequestMapping(value = "/base/authority/getAvailableAuthority", method = RequestMethod.GET)
@ResponseBody
public JsonResponse getAvailableAuthority (int roleId) {
Session session = sessionFactory.openSession();
Set<Integer> functionList = new HashSet<Integer>(session.createQuery(retrieveAuthority).setInteger("roleId", roleId).list());

JsonResponse jsonResponse = new JsonResponse(true);
List<FunctionTreeNodeEntity> allFunctionTreeNodeEntity = session.createQuery(retrieveAllFunction).list();
for (FunctionTreeNodeEntity functionTreeNodeEntity : allFunctionTreeNodeEntity) {
if (!functionList.contains(functionTreeNodeEntity.getPkFunction())) {
jsonResponse.addResponseMsg(dataService.entityToJson(functionTreeNodeEntity));
jsonResponse.setTotal(jsonResponse.getTotal() + 1);
}
}
session.close();
return jsonResponse;
}

@SuppressWarnings("unchecked")
@RequestMapping(value = "/base/authority/addAuthority", method = RequestMethod.POST)
@ResponseBody
public JsonResponse addAuthority (int roleId, int functionId) {
Session session = sessionFactory.openSession();
JsonResponse jsonResponse = new JsonResponse(true);
List<AuthorityEntity> authorityEntityList = session.createQuery(retrieveAuthorityByRoleFunction).setInteger("roleId", roleId).setInteger("functionId", functionId).list();
if (authorityEntityList.size() > 0)
return jsonResponse;

AuthorityEntity authorityEntity = new AuthorityEntity();
authorityEntity.setFkRole(roleId);
authorityEntity.setFkFunction(functionId);
session.save(authorityEntity);
session.flush();
session.close();
return jsonResponse;
}

@SuppressWarnings("unchecked")
@RequestMapping(value = "/base/authority/deleteAuthority", method = RequestMethod.POST)
@ResponseBody
public JsonResponse deleteAuthority (int roleId, int functionId) {
Session session = sessionFactory.openSession();
JsonResponse jsonResponse = new JsonResponse(true);
List<AuthorityEntity> authorityEntityList = session.createQuery(retrieveAuthorityByRoleFunction).setInteger("roleId", roleId).setInteger("functionId", functionId).list();
if (authorityEntityList.size() == 0)
return new JsonResponse(false);

for (AuthorityEntity authorityEntity : authorityEntityList)
session.delete(authorityEntity);

session.flush();
session.close();
return jsonResponse;
}
}
Loading

0 comments on commit 94b321d

Please sign in to comment.