|
@@ -7,6 +7,7 @@ import javax.persistence.EntityManager;
|
|
import javax.persistence.PersistenceContext;
|
|
import javax.persistence.PersistenceContext;
|
|
import javax.persistence.Query;
|
|
import javax.persistence.Query;
|
|
|
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -17,8 +18,11 @@ import cn.com.qmth.stmms.biz.basic.model.Privilege;
|
|
import cn.com.qmth.stmms.biz.basic.model.RoleInfo;
|
|
import cn.com.qmth.stmms.biz.basic.model.RoleInfo;
|
|
import cn.com.qmth.stmms.biz.basic.service.PrivilegeService;
|
|
import cn.com.qmth.stmms.biz.basic.service.PrivilegeService;
|
|
import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
|
|
+import cn.com.qmth.stmms.biz.config.model.SystemAuth;
|
|
|
|
+import cn.com.qmth.stmms.biz.config.service.SystemAuthService;
|
|
import cn.com.qmth.stmms.common.enums.PrivilegeType;
|
|
import cn.com.qmth.stmms.common.enums.PrivilegeType;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
|
|
+import cn.com.qmth.stmms.common.enums.SystemAuthType;
|
|
|
|
|
|
@Service("privilegeService")
|
|
@Service("privilegeService")
|
|
public class PrivilegeServiceImpl extends BaseQueryService<Privilege> implements PrivilegeService {
|
|
public class PrivilegeServiceImpl extends BaseQueryService<Privilege> implements PrivilegeService {
|
|
@@ -36,6 +40,9 @@ public class PrivilegeServiceImpl extends BaseQueryService<Privilege> implements
|
|
@Autowired
|
|
@Autowired
|
|
private RoleInfoDao roleInfoDao;
|
|
private RoleInfoDao roleInfoDao;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private SystemAuthService authService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public List<Privilege> getMenuPrivileges() {
|
|
public List<Privilege> getMenuPrivileges() {
|
|
if (privileges == null) {
|
|
if (privileges == null) {
|
|
@@ -71,24 +78,41 @@ public class PrivilegeServiceImpl extends BaseQueryService<Privilege> implements
|
|
initCollegeAdminPrivilege(schoolId);
|
|
initCollegeAdminPrivilege(schoolId);
|
|
initInspectorPrivilege(schoolId);
|
|
initInspectorPrivilege(schoolId);
|
|
initSchoolViewerPrivilege(schoolId);
|
|
initSchoolViewerPrivilege(schoolId);
|
|
|
|
+
|
|
|
|
+ SystemAuth systemAuth = authService.findOne();
|
|
|
|
+ if (SystemAuthType.ONLINE.equals(systemAuth.getType())) {
|
|
|
|
+ disablePrivilege(schoolId, new String[] { "user_list-help_video", "exam_mark-group-help_video",
|
|
|
|
+ "exam_inspected_info-list-help_video" });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void disablePrivilege(Integer schoolId, String[] codes) {
|
|
|
|
+ StringBuilder sql = new StringBuilder();
|
|
|
|
+ sql.append("update b_role_privilege ");
|
|
|
|
+ sql.append(" set enable=0 ");
|
|
|
|
+ sql.append(" where privilege_code in('" + StringUtils.join(codes, "','") + "')");
|
|
|
|
+ sql.append(" and school_id=" + schoolId);
|
|
|
|
+ Query query = entityManager.createNativeQuery(sql.toString());
|
|
|
|
+ query.executeUpdate();
|
|
}
|
|
}
|
|
|
|
|
|
private void initSchoolAdminPrivilege(Integer schoolId) {
|
|
private void initSchoolAdminPrivilege(Integer schoolId) {
|
|
|
|
+ Role role = Role.SCHOOL_ADMIN;
|
|
StringBuilder sql = new StringBuilder();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.append(" INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`) ");
|
|
sql.append(" INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`) ");
|
|
- sql.append(" SELECT s.id,'SCHOOL_ADMIN',p.`code`,1 from b_privilege p join b_school s ");
|
|
|
|
|
|
+ sql.append(" SELECT s.id,'" + role.name() + "',p.`code`,1 from b_privilege p join b_school s ");
|
|
sql.append(" where s.id=" + schoolId);
|
|
sql.append(" where s.id=" + schoolId);
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
query.executeUpdate();
|
|
query.executeUpdate();
|
|
}
|
|
}
|
|
|
|
|
|
private void initSubjectHeaderPrivilege(Integer schoolId) {
|
|
private void initSubjectHeaderPrivilege(Integer schoolId) {
|
|
|
|
+ Role role = Role.SUBJECT_HEADER;
|
|
StringBuilder sql = new StringBuilder();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.append("INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
sql.append("INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
- sql.append(" SELECT s.id,'SUBJECT_HEADER',p.`code`,1 from b_privilege p join b_school s ");
|
|
|
|
|
|
+ sql.append(" SELECT s.id,'" + role.name() + "',p.`code`,1 from b_privilege p join b_school s ");
|
|
sql.append(
|
|
sql.append(
|
|
" where p.`code` in('exam_mark','exam_mark-mark','exam_mark-group','exam_mark-marker','exam_mark-trial','exam_mark-library'");
|
|
" where p.`code` in('exam_mark','exam_mark-mark','exam_mark-group','exam_mark-marker','exam_mark-trial','exam_mark-library'");
|
|
- ;
|
|
|
|
sql.append(
|
|
sql.append(
|
|
" ,'exam_mark-library-inspect','exam_mark-library-reject','exam_mark-arbitrate','exam_mark-quality','exam_reject_list'");
|
|
" ,'exam_mark-library-inspect','exam_mark-library-reject','exam_mark-arbitrate','exam_mark-quality','exam_reject_list'");
|
|
sql.append(
|
|
sql.append(
|
|
@@ -107,7 +131,7 @@ public class PrivilegeServiceImpl extends BaseQueryService<Privilege> implements
|
|
|
|
|
|
sql = new StringBuilder();
|
|
sql = new StringBuilder();
|
|
sql.append("INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
sql.append("INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
- sql.append(" SELECT s.id,'SUBJECT_HEADER',p.`code`,0 from b_privilege p join b_school s ");
|
|
|
|
|
|
+ sql.append(" SELECT s.id,'" + role.name() + "',p.`code`,0 from b_privilege p join b_school s ");
|
|
sql.append(
|
|
sql.append(
|
|
" where p.`code` in('exam_mark-group-add','exam_mark-group-edit','exam_mark-group-reset_edit','exam_mark-group-delete')");
|
|
" where p.`code` in('exam_mark-group-add','exam_mark-group-edit','exam_mark-group-reset_edit','exam_mark-group-delete')");
|
|
sql.append(" and s.id=" + schoolId);
|
|
sql.append(" and s.id=" + schoolId);
|
|
@@ -116,9 +140,10 @@ public class PrivilegeServiceImpl extends BaseQueryService<Privilege> implements
|
|
}
|
|
}
|
|
|
|
|
|
private void initCollegeAdminPrivilege(Integer schoolId) {
|
|
private void initCollegeAdminPrivilege(Integer schoolId) {
|
|
|
|
+ Role role = Role.COLLEGE_ADMIN;
|
|
StringBuilder sql = new StringBuilder();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.append("INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
sql.append("INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
- sql.append(" SELECT s.id,'COLLEGE_ADMIN',p.`code`,1 from b_privilege p join b_school s ");
|
|
|
|
|
|
+ sql.append(" SELECT s.id,'" + role.name() + "',p.`code`,1 from b_privilege p join b_school s ");
|
|
sql.append(
|
|
sql.append(
|
|
" where p.`code` in('exam_mark','exam_mark-mark','exam_mark-group','exam_mark-marker','exam_mark-trial','exam_mark-library'");
|
|
" where p.`code` in('exam_mark','exam_mark-mark','exam_mark-group','exam_mark-marker','exam_mark-trial','exam_mark-library'");
|
|
sql.append(
|
|
sql.append(
|
|
@@ -139,7 +164,7 @@ public class PrivilegeServiceImpl extends BaseQueryService<Privilege> implements
|
|
|
|
|
|
sql = new StringBuilder();
|
|
sql = new StringBuilder();
|
|
sql.append("INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
sql.append("INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
- sql.append(" SELECT s.id,'COLLEGE_ADMIN',p.`code`,0 from b_privilege p join b_school s ");
|
|
|
|
|
|
+ sql.append(" SELECT s.id,'" + role.name() + "',p.`code`,0 from b_privilege p join b_school s ");
|
|
sql.append(
|
|
sql.append(
|
|
" where p.`code` in('exam_mark-group-add','exam_mark-group-edit','exam_mark-group-reset_edit','exam_mark-group-delete')");
|
|
" where p.`code` in('exam_mark-group-add','exam_mark-group-edit','exam_mark-group-reset_edit','exam_mark-group-delete')");
|
|
sql.append(" and s.id=" + schoolId);
|
|
sql.append(" and s.id=" + schoolId);
|
|
@@ -148,9 +173,10 @@ public class PrivilegeServiceImpl extends BaseQueryService<Privilege> implements
|
|
}
|
|
}
|
|
|
|
|
|
private void initInspectorPrivilege(Integer schoolId) {
|
|
private void initInspectorPrivilege(Integer schoolId) {
|
|
|
|
+ Role role = Role.INSPECTOR;
|
|
StringBuilder sql = new StringBuilder();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.append(" INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
sql.append(" INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
- sql.append(" SELECT s.id,'INSPECTOR',p.`code`,1 from b_privilege p join b_school s ");
|
|
|
|
|
|
+ sql.append(" SELECT s.id,'" + role.name() + "',p.`code`,1 from b_privilege p join b_school s ");
|
|
sql.append(" where p.`code` in('exam_inspected_info','exam_inspected_info-info','exam_inspected_info-list'"
|
|
sql.append(" where p.`code` in('exam_inspected_info','exam_inspected_info-info','exam_inspected_info-list'"
|
|
+ ",'exam_inspected_info-list-help_video','exam_inspected_info-next_round')");
|
|
+ ",'exam_inspected_info-list-help_video','exam_inspected_info-next_round')");
|
|
sql.append(" and s.id=" + schoolId);
|
|
sql.append(" and s.id=" + schoolId);
|
|
@@ -159,9 +185,10 @@ public class PrivilegeServiceImpl extends BaseQueryService<Privilege> implements
|
|
}
|
|
}
|
|
|
|
|
|
private void initSchoolViewerPrivilege(Integer schoolId) {
|
|
private void initSchoolViewerPrivilege(Integer schoolId) {
|
|
|
|
+ Role role = Role.SCHOOL_VIEWER;
|
|
StringBuilder sql = new StringBuilder();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.append(" INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
sql.append(" INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)");
|
|
- sql.append(" SELECT s.id,'SCHOOL_VIEWER',p.`code`,1 from b_privilege p join b_school s ");
|
|
|
|
|
|
+ sql.append(" SELECT s.id,'" + role.name() + "',p.`code`,1 from b_privilege p join b_school s ");
|
|
sql.append(
|
|
sql.append(
|
|
" where p.`code` in('exam_score','exam_report_subject','exam_report_subject-total','operation_log')");
|
|
" where p.`code` in('exam_score','exam_report_subject','exam_report_subject-total','operation_log')");
|
|
sql.append(" and s.id=" + schoolId);
|
|
sql.append(" and s.id=" + schoolId);
|