kingcms 文章管理 权限修改
2011-08-07 09:33
190 查看
首先说明一下这个权限修改是指让后台具有文章管理权限的普通角色只能管理自己创建的文章,管理员可以管理所有人的文章。本文只是起到一个抛砖引玉的作用。
1.打开/admin/article/index.asp,搜索king_edt函数,找到其中的
这一段,在末尾加入
,authorid表示作者的id。
2.再找到同函数中的
为了不使文章的所有者因修改文章而改变,我们只在创建文章时写入作者id。你只需将上面代码中的else部分覆盖就可以了。不同之处就在最后那个king.id上,它表示当前登录的用户id。
3.为了让用户只能看到自己的文章我们还要修改sub king_art()函数,这个也在index.asp中。找到
后将其替换为
相信不少人看到这里已经明白了,我再多句嘴,这个king.level是当前用户权限。admin是系统管理员的权限名,剩下的就是sql的问题了,大家可以根据自己的需要随便改查询语句就ok了。
自己建几个账号试试,是不是普通账号只能看见自己的文章而管理员能看见所有人的呢?这只是个简单的修改,还是有漏洞的,要想防止被他人修改还可以加入判断当前用户id是否等于文章作者id,否则不能修改。
还是找到king_edt函数,搜索
在其后追加
以上。
1.打开/admin/article/index.asp,搜索king_edt函数,找到其中的
sql="arttitle,artcontent,artfrom,artauthor,artup,artshow,artcommend,arthead,artgrade,artkeywords,artdescription,artpath,artimg,listids,artdate"
这一段,在末尾加入
,authorid表示作者的id。
2.再找到同函数中的
'Insert Update if len(artid)>0 then conn.execute "update kingart set arttitle='"&safe(data(0,0))&"',artcontent='"&safe(data(1,0))&"',artfrom='"&safe(data(2,0))&"',artauthor='"&safe(data(3,0))&"',artup="&safe(data(4,0))&",artshow="&safe(data(5,0))&",artcommend="&safe(data(6,0))&",arthead="&safe(data(7,0))&",artgrade="&safe(data(8,0))&",artpath='"&safe(data(11,0))&"',artdate='"&safe(data(14,0))&"',artimg='"&safe(data(12,0))&"',listids='"&safe(data(13,0))&"',listid="&listid&",artdescription='"&safe(artdescription)&"',artkeywords='"&safe(artkeywords)&"' where artid="&artid&";" else conn.execute "insert into kingart ("&sql&",artorder,listid) values ('"&safe(data(0,0))&"','"&safe(data(1,0))&"','"&safe(data(2,0))&"','"&safe(data(3,0))&"',"&safe(data(4,0))&","&safe(data(5,0))&","&safe(data(6,0))&","&safe(data(7,0))&","&safe(data(8,0))&",'"&safe(artkeywords)&"','"&safe(artdescription)&"','"&safe(data(11,0))&"','"&safe(data(12,0))&"','"&safe(data(13,0))&"','"&safe(data(14,0))&"','"&king.id&"',"&king.neworder("kingart","artorder")&","&listid&")" artid=king.newid("kingart","artid") art.createmap end if
为了不使文章的所有者因修改文章而改变,我们只在创建文章时写入作者id。你只需将上面代码中的else部分覆盖就可以了。不同之处就在最后那个king.id上,它表示当前登录的用户id。
3.为了让用户只能看到自己的文章我们还要修改sub king_art()函数,这个也在index.asp中。找到
sql="select "&sql&" from kingart where listid="&listid&" order by artorder desc,artid desc;"
后将其替换为
if king.level="admin" then sql="select "&sql&" from kingart where listid="&listid&" order by artorder desc,artid desc;" else sql="select "&sql&" from kingart where listid="&listid&" and authorid=" &king.id& " order by artorder desc,artid desc;" end if
相信不少人看到这里已经明白了,我再多句嘴,这个king.level是当前用户权限。admin是系统管理员的权限名,剩下的就是sql的问题了,大家可以根据自己的需要随便改查询语句就ok了。
自己建几个账号试试,是不是普通账号只能看见自己的文章而管理员能看见所有人的呢?这只是个简单的修改,还是有漏洞的,要想防止被他人修改还可以加入判断当前用户id是否等于文章作者id,否则不能修改。
还是找到king_edt函数,搜索
if len(form("artid"))>0 then'若表单有值的情况下
在其后追加
set rs=conn.execute("select authorid from kingart where artid="&artid&";") if rs("authorid")<>king.id then king.error king.lang("error/invalid") rs.close set rs=nothing
以上。
相关文章推荐
- 关于权限管理设计文章整理,希望对大家有所帮助
- Spring Security教程(8)---- 自定义决策管理器及修改权限前缀
- ylmf OS 3.0 分配修改登陆root用户管理权限的方法
- linux中用户、组的管理(密码管理、权限管理及其修改用户、组)(转)
- Oracle中管理用户(创建用户,用户加锁,用户解锁,修改用户密码,授权登录权限,撤销登录权限,授权连接权限,conn命令,创建角色,并为角色赋权限,将角色赋给指定用户)
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(11)-验证码实现和底层修改
- SpringAOP实现的用户权限管理【修改了别人的代码,感谢原作者!】
- Ubuntu分配修改登陆root用户管理权限的方法
- oracle 用户添加、删除、修改,用户权限,对象特权管理
- 织梦cms三级栏目权限管理修改
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(11)-验证码实现和底层修改
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加
- 【TFS权限管理】vs2013 修改TFS已经登录的用户方法
- linux中用户、组的管理(密码管理、权限管理及其修改用户、组)
- Linux--文件管理以及权限的修改
- 五、Liunx 文件权限管理(三) 修改文件权限
- dedecms5.7 sp1 管理后台修改权限bug
- linux用户管理(2)----修改用户模式(usermod,sudo权限等)
- 一些权限管理方面的文章