@@ -36,7 +36,20 @@ public void readUsersTable() {
36
36
}
37
37
try {
38
38
while (res .next ()) {
39
- User user = new User (res .getString ("username" ), res .getString ("password" ), res .getString ("level" ), res .getString ("role" ), res .getString ("name" ), res .getString ("avator" ));
39
+ String role = switch (res .getInt ("role" )) {
40
+ case 0 -> "forbidden" ;
41
+ case 1 -> "admin" ;
42
+ case 2 -> "public" ;
43
+ case 3 -> "Dictionary Admin" ;
44
+ case 4 -> "professor" ;
45
+ case 5 -> "Community Admin" ;
46
+ case 6 -> "Owner" ;
47
+ default -> "" ;
48
+ };
49
+ if (role .matches ("" )) {
50
+ continue ;
51
+ }
52
+ User user = new User (res .getString ("username" ), res .getString ("password" ), res .getInt ("level" ), role , res .getString ("name" ), res .getString ("avator" ));
40
53
users .put (res .getString ("username" ), user );
41
54
}
42
55
} catch (SQLException e ) {
@@ -78,32 +91,136 @@ private String runMd5(String password) {
78
91
79
92
public void setAvatar (String username , String avatar ) {
80
93
sql .runSQL ("UPDATE Users.[user] SET avatar = '" + avatar + "' WHERE username = '" + username + "'" );
94
+ users .get (username ).avatar = avatar ;
81
95
}
82
96
83
97
public void setUName (String username , String UName ) {
84
98
sql .runSQL ("UPDATE Users.[user] SET name = '" + UName + "' WHERE username = '" + username + "'" );
99
+ users .get (username ).UName = UName ;
85
100
}
86
101
87
102
public void setPassword (String username , String password ) {
88
103
password = runMd5 (password );
89
104
sql .runSQL ("UPDATE Users.[user] SET password = '" + password + "' WHERE username = '" + username + "'" );
105
+ users .get (username ).password = password ;
90
106
}
91
107
92
108
public void setSex (String username , String sex ) {
93
109
sql .runSQL ("UPDATE Users.[user] SET sex = '" + sex + "' WHERE username = '" + username + "'" );
110
+ users .get (username ).Sex = sex ;
94
111
}
95
112
96
113
public void setLevel (String username , int level ) {
97
114
sql .runSQL ("UPDATE Users.[user] SET level = '" + valueOf (level ) + "' WHERE username = '" + username + "'" );
115
+ users .get (username ).level = level ;
98
116
}
99
117
100
- public void setRole (String username , int role ) {
101
- sql .runSQL ("UPDATE Users.[user] SET role = '" + valueOf (role ) + "' WHERE username = '" + username + "'" );
118
+ public String LevelUp (String username , String Operator ) {
119
+ if (users .get (Operator ).role .matches ("Owner" ) || users .get (Operator ).role .matches ("admin" ) || users .get (Operator ).role .matches ("Community Admin" )) {
120
+ if (users .get (username ) == null ) {
121
+ return "用户不存在!" ;
122
+ }
123
+ sql .runSQL ("UPDATE Users.[user] SET level = " + valueOf (users .get (username ).level +1 ) + " WHERE username = '" + username + "'" );
124
+ users .get (username ).level = users .get (username ).level +1 ;
125
+ return "" ;
126
+ } else {
127
+ return "权限不足!" ;
128
+ }
102
129
}
103
130
104
- public void removeUser (String username ) {
105
- sql .runSQL ("DELETE FROM Users.[user] WHERE username = '" + username + "'" );
106
- readUsersTable ();
131
+ public String LevelUp (String username , String Operator , int dis ) {
132
+ if (users .get (Operator ).role .matches ("Owner" ) || users .get (Operator ).role .matches ("admin" ) || users .get (Operator ).role .matches ("Community Admin" )) {
133
+ if (users .get (username ) == null ) {
134
+ return "用户不存在!" ;
135
+ }
136
+ sql .runSQL ("UPDATE Users.[user] SET level = " + valueOf (users .get (username ).level +dis ) + " WHERE username = '" + username + "'" );
137
+ users .get (username ).level = users .get (username ).level +dis ;
138
+ return "" ;
139
+ } else {
140
+ return "权限不足!" ;
141
+ }
142
+ }
143
+
144
+ public void levelDown (String username , String Operator ) {
145
+ if (users .get (Operator ).role .matches ("Owner" ) || users .get (Operator ).role .matches ("admin" ) || users .get (Operator ).role .matches ("Community Admin" )) {
146
+ if (users .get (username ) == null ) {
147
+ return ;
148
+ }
149
+ sql .runSQL ("UPDATE Users.[user] SET level = " + valueOf (users .get (username ).level -1 ) + " WHERE username = '" + username + "'" );
150
+ users .get (username ).level = users .get (username ).level -1 ;
151
+ }
152
+ }
153
+
154
+ public void levelDown (String username , String Operator , int dis ) {
155
+ if (users .get (Operator ).role .matches ("Owner" ) || users .get (Operator ).role .matches ("admin" ) || users .get (Operator ).role .matches ("Community Admin" )) {
156
+ if (users .get (username ) == null ) {
157
+ return ;
158
+ }
159
+ sql .runSQL ("UPDATE Users.[user] SET level = " + valueOf (users .get (username ).level -dis ) + " WHERE username = '" + username + "'" );
160
+ users .get (username ).level = users .get (username ).level -dis ;
161
+ }
162
+ }
163
+
164
+ public void removeUser (String username , String Operator ) {
165
+ if (users .get (Operator ).role .matches ("Owner" )) {
166
+ return ;
167
+ } else if ((users .get (Operator ).role .matches ("admin" ) || users .get (Operator ).role .matches ("Owner" )) && !users .get (username ).role .matches ("Owner" )) {
168
+ sql .runSQL ("DELETE FROM Users.[user] WHERE username = '" + username + "'" );
169
+ users .remove (username );
170
+ }
171
+ }
172
+
173
+ public void forbidAnUser (String username , String Operator ) {
174
+ if (users .get (Operator ).role .matches ("Owner" )) {
175
+ return ;
176
+ } else if ((users .get (Operator ).role .matches ("admin" ) || users .get (Operator ).role .matches ("Owner" ) || users .get (Operator ).role .matches ("Community Admin" )) && (!users .get (username ).role .matches ("Owner" ) || !users .get (username ).role .matches ("admin" ) || !users .get (username ).role .matches ("Community Admin" ))) {
177
+ sql .runSQL ("UPDATE Users.[user] SET role = '0' WHERE username = '" + username + "'" );
178
+ users .get (username ).role = "forbidden" ;
179
+ }
180
+ }
181
+
182
+ public void allowAnUser (String username , String Operator ) {
183
+ if (!users .get (Operator ).role .matches ("forbidden" )) {
184
+ return ;
185
+ } else if (users .get (Operator ).role .matches ("admin" ) || users .get (Operator ).role .matches ("Owner" ) || users .get (Operator ).role .matches ("Community Admin" )) {
186
+ sql .runSQL ("UPDATE Users.[user] SET role = '2' WHERE username = '" + username + "'" );
187
+ users .get (username ).role = "public" ;
188
+ }
189
+ }
190
+
191
+ public void ChangeUserRole (String username , String Operator , String role ) {
192
+ if (users .get (Operator ).role .matches ("Owner" )) {
193
+ return ;
194
+ } else if (users .get (username ) == null ) {
195
+ return ;
196
+ } else if (users .get (Operator ).role .matches ("Owner" )) {
197
+ int res = switch (role ) {
198
+ case "admin" -> 1 ;
199
+ case "Dictionary Admin" -> 3 ;
200
+ case "professor" -> 4 ;
201
+ case "Community Admin" -> 5 ;
202
+ case "public" -> 2 ;
203
+ default -> 0 ;
204
+ };
205
+ if (users .get (username ).role .matches (role )) {
206
+ return ;
207
+ }
208
+ sql .runSQL ("UPDATE Users.[user] SET role = " +valueOf (res )+" WHERE username = '" + username + "'" );
209
+ users .get (username ).role = role ;
210
+ } else if (users .get (Operator ).role .matches ("admin" )) {
211
+ int res = switch (role ) {
212
+ case "Dictionary Admin" -> 3 ;
213
+ case "professor" -> 4 ;
214
+ case "Community Admin" -> 5 ;
215
+ case "public" -> 2 ;
216
+ default -> 0 ;
217
+ };
218
+ if (users .get (username ).role .matches (role )) {
219
+ return ;
220
+ }
221
+ sql .runSQL ("UPDATE Users.[user] SET role = " +valueOf (res )+" WHERE username = '" + username + "'" );
222
+ users .get (username ).role = role ;
223
+ }
107
224
}
108
225
109
226
public static void main (String [] args ) {
@@ -117,6 +234,9 @@ public static void main(String[] args) {
117
234
} else {
118
235
System .out .println ("登录失败!" );
119
236
}
237
+ login .setAvatar ("test" , "test" );
238
+ login .setUName ("test" , "test" );
239
+ login .setPassword ("test" , "123456" );
120
240
} catch (SQLException e ) {
121
241
throw new RuntimeException (e );
122
242
}
0 commit comments