博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断文章/帖子操作权限
阅读量:6950 次
发布时间:2019-06-27

本文共 1797 字,大约阅读时间需要 5 分钟。

在BBS项目中 第一次新建一个帖子  称为文章  一篇帖子中   只有一个文章  但是可有多个回帖

如何判断某文章或者帖子是自己创建的  从而给与权限呢

下面给出代码:

// 判断本文章是否为登陆人创建	private Boolean isArticleAuthor() throws Exception {		// 查询本文章的创建人		sql = "SELECT USER_ID FROM T_ARTICLE WHERE ARTICLE_ID = '" + artUuid+ "'";		sta = con.createStatement();		res = sta.executeQuery(sql);		if (res.next()) {			art_personUUID = res.getString(1);		}		if ((person.getUuid()).equals(art_personUUID)) {			isArticleAuthor = true;		} else {			isArticleAuthor = false;		}		System.out.println("isArticleAuthor--->"+isArticleAuthor);		return isArticleAuthor;	}

不管用户是否设置昵称  任他的昵称如何改变  我们只要得到创建文章时设置的User_ID(好比人的身份证号),就可以唯一的标识这篇文章的创建人 从而控制权限

 

帖子的判断权限稍微复杂点,因为回帖的判断是对多个帖子的判断

 ① 首先我们要取出所有回帖的POST_ID,有多少个POST_ID就有多少回帖

sql = "SELECT POSTS_ID from T_POSTS WHERE ARTICLE_ID='"+artUuid+"'";

② 其次我们要根据回帖的ID取出这些回帖的创建人,创建人数至少1人,至多POST_ID.size()人.

sql = "SELECT USER_ID FROM T_POSTS WHERE POSTS_ID = '"+回帖ID集合+"'";

③  因此我们可以把这两个sql语句合二为一  取得所有帖子的所有创建人

sql= "SELECT USER_ID FROM T_POSTS WHERE POSTS_ID IN (SELECT POSTS_ID from T_POSTS WHERE ARTICLE_ID='"+artUuid+"')";

 这个语句使用介词IN来做了一个复杂查询  其实就是两个SQL语句取交集

 

下面给出具体的代码:

// 判断帖子是否是登陆人创建	private List isPostsAuthorList() throws Exception {		sql = "SELECT USER_ID FROM T_POSTS WHERE POSTS_ID IN (SELECT POSTS_ID from T_POSTS WHERE ARTICLE_ID='" + artUuid + "')";			sta = con.createStatement();		res = sta.executeQuery(sql);		System.out.println(sql);		while(res.next()){						pos_personUUID = res.getString(1);						if((person.getUuid()).equals(pos_personUUID)){				isPostsAuthor = true;			}else{				isPostsAuthor = false;			}				isPostsAuthorList.add(isPostsAuthor);		}			return isPostsAuthorList;	}

 这个方法返回的是一个Boolean的List集合,根据帖子的顺序取得帖子创建时插入的USER_ID来和登陆人ID做比较,返回true/false.放入到集合中

并通过request.setAttribute()方法来共享此属性

在前台做权限判断时,就遍历这个List 取得单个的Boolean变量  判断 决定是否给与当前登陆人编辑/删除文章/帖子的权限

 

 

 

 

 

 

转载地址:http://mgkil.baihongyu.com/

你可能感兴趣的文章
pyfa的汉化
查看>>
使用@Transactional(SUPPORTS)和不加@Transactional 有什么区别?
查看>>
apache-cxf测试webservice添加header信息
查看>>
JS判断一个页面是否已经打开
查看>>
TPS和QPS的区别
查看>>
设计模式--模板方法模式
查看>>
Removing Nesting By Returning Early
查看>>
Jfinal weixin源码分析---碎碎念(看最后,有福利)
查看>>
[Java]HashMap的两种排序方式
查看>>
C++中const与指针、引用的分析(转自china_unix GP-King)
查看>>
mysql 保存emoji 4字节宽度字符串
查看>>
diff结果分析
查看>>
php UUID &分布式生成用不重复的随机数方法
查看>>
C语言中强制转换问题
查看>>
spring学习4-bean配置文件
查看>>
SmartFoxServer 2X 安装
查看>>
Jackson2 json 转换Bean, Bean 里没有对应的值 jackson Un的解决方式
查看>>
Class.isAssignableFrom instanceof 区别
查看>>
win下MySQL 8.0.11 修改密码、开启远程访问
查看>>
媒体查询@media scree
查看>>