IT-KIMI_SHI\SINOIT.KIMI
2018-12-07 50eb1d766c470dc6ff927199eaee934f972a8b70
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
package web.authority;
 
import model.authority.Group;
import model.authority.User;
import model.myPanel.MyCharts;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import service.authority.UserService;
 
import javax.annotation.Resource;
import java.util.*;
 
/**
 * @author CTPlayer
 * @since 2017/9/25 13:48
 */
 
@Controller
@RequestMapping("/authority")
public class AuthorityController {
 
    @Resource
    private UserService userService;
 
    @RequestMapping("/logout")
    public Object logout(){
        Subject currentUser = SecurityUtils.getSubject();
        currentUser.logout();
        return "redirect:../index.page";
    }
 
    @RequestMapping("/userManage.page")
    public Object userManage(){
        return "panel/userManage";
    }
 
    @RequestMapping("/getAllUsersInfo")
    @ResponseBody
    public Object getAllUsersInfo(){
        Subject currentUser = SecurityUtils.getSubject();
        List<Map<String, Object>> result = new ArrayList<>();
        if(currentUser.hasRole("consumer")){
            result = userService.findCurrentUserInfo();
        }else if(currentUser.hasRole("admin")){
            result = userService.findAllUsersInfo();
        }
        return result;
    }
 
    @RequestMapping("/addNewUser")
    @ResponseBody
    public Object addNewUser(User user){
        return userService.addNewUser(user);
    }
 
    @RequestMapping("/addNewGroup")
    @ResponseBody
    public Object addNewGroup(Group group){
        return userService.addNewGroup(group);
    }
 
    @RequestMapping("/checkUser")
    @ResponseBody
    public Object checkUser(String userName){
        return userService.checkUser(userName);
    }
 
    @RequestMapping("/checkGroup")
    @ResponseBody
    public Object checkGroup(String groupName){
        return userService.checkGroup(groupName);
    }
 
    @RequestMapping("/updateUser")
    @ResponseBody
    public Object updateUser(String password){
        return userService.updateUser(password);
    }
 
    @RequestMapping("/upToAdmin")
    @ResponseBody
    public Object upToAdmin(String userName){
        return userService.updateToAdmin(userName);
    }
 
    @RequestMapping("/checkPassword")
    @ResponseBody
    public Object checkPassword(String password){
        boolean isSame = false;
        User user = (User)SecurityUtils.getSubject().getPrincipal();
        String oldPassword = user.getPassword();
        if(oldPassword.equals(password)){
            isSame = true;
        }
        return isSame;
    }
 
    @RequestMapping("/addUserToGroup")
    @ResponseBody
    public Object addUserToGroup(String userId,String groupName){
        return userService.addUserToGroup(userId,groupName);
    }
 
    @RequestMapping("/deleteUserFromGroup")
    @ResponseBody
    public Object deleteUserFromGroup(String userId,String groupName){
        return userService.deleteUserFromGroup(userId,groupName);
    }
 
    @RequestMapping("/getJoinedGroup")
    @ResponseBody
    public Object getJoinedGroup(User user){
        return userService.getJoinedGroup(user);
    }
 
    @RequestMapping("/getNoJoinGroup")
    @ResponseBody
    public Object getNoJoinGroup(User user){
        return userService.getNoJoinGroup(user);
    }
 
    @RequestMapping("/getAllGroups")
    @ResponseBody
    public Object getAllGroups(){
        return userService.getAllGroups();
    }
 
    @RequestMapping("/checkUserAuthority")
    @ResponseBody
    public Object checkUserAuthority(String chartId) {
        Map<String, Object> resMap = new HashMap<>();
        if(SecurityUtils.getSubject().hasRole("consumer")){
            Set<String> reporterIdsSet = userService.getAllChartsOfWriteByUser();
            if(reporterIdsSet.contains(chartId)) {
                resMap.put("haveAuthority", true);
            }else {
                resMap.put("haveAuthority", false);
            }
        }else if(SecurityUtils.getSubject().hasRole("admin")) {
            resMap.put("haveAuthority", true);
        }
        return resMap;
    }
 
    @RequestMapping("/getChartGroup")
    @ResponseBody
    public Object getChartGroup(String chartId){
        return userService.getChartGroup(chartId);
    }
 
    @RequestMapping("/updateChartGroup")
    @ResponseBody
    public Object updateChartGroup(MyCharts myCharts) throws Exception {
        Map<String, Object> resMap = new HashMap<>();
        userService.updateGroupAuthorityOfChart(myCharts);
        resMap.put("success", true);
        return resMap;
    }
 
    @RequestMapping("/deleteOneUser")
    @ResponseBody
    public Object deleteOneUser(User user){
        return userService.deleteOneUser(user);
    }
}