From 9e117e9e5bf4ac57420bb06f0c793c6fe32d37d5 Mon Sep 17 00:00:00 2001
From: lxyer <237809796@qq.com>
Date: Sun, 10 Jun 2018 16:58:25 +0800
Subject: [PATCH] =?UTF-8?q?1.=20=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83-?=
=?UTF-8?q?=E6=94=B6=E8=97=8F=E6=95=B0=E6=8D=AE=E4=B8=8D=E5=AF=B9=202.=20?=
=?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E6=9F=A5=E8=AF=A2=E4=B8=8D=E5=88=B0?=
=?UTF-8?q?=E7=94=A8=E6=88=B7=E6=9C=AA=E5=85=AC=E5=BC=80=E5=B8=96=E5=AD=90?=
=?UTF-8?q?=203.=20=E6=B3=A8=E5=86=8C/=E8=B5=84=E6=96=99=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=20=E6=88=90=E5=8A=9F=E5=90=8E=E6=9C=AA=E6=8F=90=E7=A4=BA=204.?=
=?UTF-8?q?=20=E9=A6=96=E9=A1=B5=E5=B8=96=E5=AD=90=E7=94=A8=E6=88=B7?=
=?UTF-8?q?=E5=A4=B4=E5=83=8F=E9=93=BE=E6=8E=A5=E5=9C=B0=E5=9D=80=E9=94=99?=
=?UTF-8?q?=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
root/index.html | 2 +-
root/res/mods/user.js | 4 ----
src/com/lxyer/bbs/base/BaseServlet.java | 2 +-
src/com/lxyer/bbs/base/user/UserService.java | 15 +++++++++++++++
src/com/lxyer/bbs/content/ContentService.java | 7 ++++---
5 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/root/index.html b/root/index.html
index 5a324b9..9a56b8b 100644
--- a/root/index.html
+++ b/root/index.html
@@ -79,7 +79,7 @@
#for(x : contents.rows??)
-
-
+
diff --git a/root/res/mods/user.js b/root/res/mods/user.js
index 763b321..9302fdc 100644
--- a/root/res/mods/user.js
+++ b/root/res/mods/user.js
@@ -288,8 +288,6 @@ layui.define(['laypage', 'fly', 'element', 'flow'], function(exports){
bean:JSON.stringify({username:fdata.username, password:fdata.password})
,vercode:fdata.vercode
},function (data) {
- console.log(data);
- //data = JSON.parse(data);
if(data.retcode != 0){
layer.msg(data.retinfo);
return false;
@@ -330,7 +328,6 @@ layui.define(['laypage', 'fly', 'element', 'flow'], function(exports){
bean:JSON.stringify(bean)
,columns:JSON.stringify(columns)
},function (res) {
- res = JSON.parse(res);
if(res.retcode != 0){
layer.msg(res.retinfo);
return false;
@@ -345,7 +342,6 @@ layui.define(['laypage', 'fly', 'element', 'flow'], function(exports){
nowpass:data.field.nowpass
,pass:data.field.pass
},function (res) {
- res = JSON.parse(res);
if(res.retcode != 0){
layer.msg(res.retinfo);
return false;
diff --git a/src/com/lxyer/bbs/base/BaseServlet.java b/src/com/lxyer/bbs/base/BaseServlet.java
index c134299..49c3698 100644
--- a/src/com/lxyer/bbs/base/BaseServlet.java
+++ b/src/com/lxyer/bbs/base/BaseServlet.java
@@ -178,7 +178,7 @@ public class BaseServlet extends HttpServlet {
UserInfo userInfo = request.currentUser();
if (userInfo == null){
node.and("status", FilterExpress.NOTEQUAL, 3);
- }else {
+ }else if (!userService.isAdmin(currentId)){
//select * from content c where c.status != -1 and (c.status!=3 or (c.status=3 and c.userId=100001))
node.and(FilterNode.create("status", FilterExpress.NOTEQUAL, 3).or(FilterNode.create("status", 3).and("userId", userInfo.getUserId())));
}
diff --git a/src/com/lxyer/bbs/base/user/UserService.java b/src/com/lxyer/bbs/base/user/UserService.java
index 7b35fad..3e0390b 100644
--- a/src/com/lxyer/bbs/base/user/UserService.java
+++ b/src/com/lxyer/bbs/base/user/UserService.java
@@ -13,6 +13,7 @@ import org.redkale.util.SelectColumn;
import org.redkale.util.Sheet;
import java.util.ArrayList;
+import java.util.List;
import java.util.Objects;
import java.util.Random;
@@ -167,4 +168,18 @@ public class UserService extends BaseService {
public Number userCount() {
return source.getNumberResult(User.class, FilterFunc.COUNT, "userId", FilterNode.create("status", FilterExpress.NOTEQUAL, -1));
}
+
+ @RestMapping(ignore = true, comment = "判断用户是否是管理员")
+ public boolean isAdmin(int userId){
+ if (userId <= 0) return false;
+
+ List userIds = source.queryColumnList("userId", User.class, FilterNode.create("roleId", 1));
+ for (Integer x : userIds) {
+ if (userId == x) {
+ return true;
+ }
+ }
+
+ return false;
+ }
}
diff --git a/src/com/lxyer/bbs/content/ContentService.java b/src/com/lxyer/bbs/content/ContentService.java
index 7d47e5c..a566564 100644
--- a/src/com/lxyer/bbs/content/ContentService.java
+++ b/src/com/lxyer/bbs/content/ContentService.java
@@ -65,9 +65,10 @@ public class ContentService extends BaseService{
case "solved": filterNode.and("solved", 1);break;
case "wonderful": filterNode.and("wonderful", 1);break;
}
- if (currentId > 0){
+
+ if (!userService.isAdmin(currentId)){//私密贴:非管理员限制查看
filterNode.and(FilterNode.create("status", FilterExpress.NOTEQUAL, 3).or(FilterNode.create("status", 3).and("userId", currentId)));
- }else {
+ }else if (currentId <= 0){//私密贴:未登录限制查看
filterNode.and("status", FilterExpress.NOTEQUAL, 3);
}
@@ -164,7 +165,7 @@ public class ContentService extends BaseService{
int userId = userService.currentUserId(sessionid);
Flipper flipper = new Flipper().sort("createTime DESC");
- FilterNode filterNode = FilterNode.create("cate", 2).and("status", 1);
+ FilterNode filterNode = FilterNode.create("cate", 2).and("status", 1).and("userId", userId);
Sheet actLogs = source.querySheet(ActLog.class, SelectColumn.createIncludes("tid", "createTime"), flipper, filterNode);
int[] contentids = actLogs.stream().mapToInt(x -> x.getTid()).toArray();