用户组权限

2018-04-13 09:36:11
linefo
603
最后编辑:linefo 于 2018-04-13 15:48:49


组别


phpwind的用户组有四个大类:


会员组:级别按照会员发的帖子数自动进行级别判断并更新。
系统组:属于站点管理层,系统组成员由站点管理员设定,管理员可以在 会员管理 内编辑用户组成员。
特殊组:可以设置管理权限的组别,区别于系统组,特殊组可以进行出售
默认组:默认组别不可删除,当其他组别未设置权限时,则使用该默认权限


注:批量添加的用户组权限设置为默认,需要单独进行权限编辑。默认用户组有一个禁止发言的,将用户分到这个组别,则用户无法发帖回帖等。


引申:

创始人是一个特殊的组别,包含所有后台权限(这个后台权限指的是可以随意修改后台所有东西,不是指下面那些权限),暂时没发现其信息有存储到数据表中,增删创始人会修改/data/sql_config.php文件中的$manage数组信息。


组别数据表相关


相关字段是group_id(组别id),和下图这里对应


四个组别的会员都存在pw_members里面,如果是系统组的,同时还会存放相关信息到pw_administrator表中


级别和权限指定


在后台指定不同组别、每个级别的会员权限

指定后,在pw_permission(权限表)中可以查看这些权限信息。

同时会以pw_permission的信息为基准,做文件存储,位置在/data/groupdb目录中,目的是为了系统程序直接从文件中读取相关数据而不用再去访问数据库。


级别和权限相关参数说明


我们都是在后台管理的,只是这里列一下文件储存以后的格式和项说明


<?php
$gp_gid='3'; // 组别id
$gp_gptype='system'; // 组别
$gp_grouptitle='管理员'; // 级别名
$gp_groupimg='3'; // 应该是级别图标
$gp_grouppost='0';
$_G=array( // 普通权限项
    'allowactive' => '1',
    'allowdebate' => '1',
    'allowdelatc' => '1',
    'allowdownload' => '1',
    'allowencode' => '1',
    'allowgoods' => '1',
    'allowhidden' => '1',
    'allowhide' => '0',
    'allowhonor' => '1',
    'allowmember' => '1',
    'allowmessege' => '1',
    'allowmodelid' => '1',
    'allownewvote' => '1',
    'allownum' => '200',
    'alloworder' => '1',
    'allowpcid' => '1,2',
    'allowportait' => '1',
    'allowpost' => '1',
    'allowprofile' => '1',
    'allowread' => '1',
    'allowreport' => '1',
    'allowreward' => '1',
    'allowrp' => '1',
    'allowsearch' => '2',
    'allowsell' => '1',
    'allowsort' => '1',
    'allowupload' => '1',
    'allowvisit' => '1',
    'allowvote' => '1',
    'anonymous' => '0',
    'atccheck' => '1',
    'atclog' => '1',
    'dig' => '1',
    'edittime' => '0',
    'fontsize' => '',
    'htmlcode' => '1',
    'ifmemo' => '1',
    'imgheight' => '',
    'imgwidth' => '',
    'leaveword' => '1',
    'markable' => '2',
    'markdt' => '',
    'markset' => 'a:5:{s:5:"money";a:4:{s:9:"markctype";s:5:"money";s:9:"maxcredit";s:3:"100";s:9:"marklimit";a:2:{i:0;s:2:"-2";i:1;s:1:"5";}s:6:"markdt";s:1:"0";}s:4:"rvrc";a:3:{s:9:"maxcredit";s:0:"";s:9:"marklimit";a:2:{i:0;s:0:"";i:1;s:0:"";}s:6:"markdt";s:1:"0";}s:6:"credit";a:3:{s:9:"maxcredit";s:0:"";s:9:"marklimit";a:2:{i:0;s:0:"";i:1;s:0:"";}s:6:"markdt";s:1:"0";}s:8:"currency";a:3:{s:9:"maxcredit";s:0:"";s:9:"marklimit";a:2:{i:0;s:0:"";i:1;s:0:"";}s:6:"markdt";s:1:"0";}i:1;a:3:{s:9:"maxcredit";s:0:"";s:9:"marklimit";a:2:{i:0;s:0:"";i:1;s:0:"";}s:6:"markdt";s:1:"0";}}',
    'maxcstyles' => '',
    'maxfavor' => '100',
    'maxgraft' => '10',
    'maxmsg' => '50',
    'maxsendmsg' => '',
    'media' => '',
    'modifyvote' => '1',
    'msggroup' => '1',
    'pergroup' => 'member,system,special',
    'postlimit' => '',
    'postpertime' => '3',
    'pwdlimitime' => '',
    'schtime' => '7776000',
    'searchtime' => '10',
    'show' => '1',
    'signnum' => '200',
    'systemforum' => '1',
    'upload' => '1',
    'uploadtype' => '',
    'userbinding' => '1',
    'viewipfrom' => '1',
    'viewvote' => '1',
);
$SYSTEM=array( // 系统权限项
    'allowadmincp' => '1',
    'allowtime' => '1',
    'anonyhide' => '1',
    'areapush' => '1',
    'banmax' => '30',
    'bantype' => '1',
    'banuser' => '2',
    'coloradmin' => '1', // 帖子加
    'copyatc' => '1', // 复制
    'delatc' => '1', // 删除
    'delattach' => '1',
    'deltpcs' => '1',
    'digestadmin' => '1', // 精华帖子相关权限
    'downadmin' => '1', // 压贴,将帖子往后压
    'encodehide' => '1',
    'inspect' => '1',
    'lockadmin' => '1', // 锁定
    'modother' => '1',
    'moveatc' => '1', // 移动
    'overprint' => '1',
    'pingcp' => '1',
    'posthide' => '1',
    'postpers' => '1',
    'pushadmin' => '1', // 提前
    'remind' => '1',
    'replayorder' => '1',
    'replaytopped' => '1',
    'replylock' => '1',
    'sellhide' => '1',
    'shield' => '1',
    'superright' => '1',
    'tcanedit' => '3,4,5',
    'topped' => '4', // 置顶相关权限
    'tpccheck' => '1', // 审核
    'tpctype' => '1',
    'unite' => '1', // 合并
    'viewcheck' => '1',
    'viewclose' => '1',
    'viewip' => '1',
);
?>


前台权限判断说明


可参考/template/wind/read.htm该模板文件


$isGM:这个值判断该会员是否创始人。

$isBM:这个值判断该会员是否板块管理员(板块管理员、父板块管理员)

$admincheck:这个值判断是否管理员,由声明代码易知:$admincheck = ($isGM || $isBM) ? 1 : 0;

$pwSystem:这个系列的数组中的值代表该会员具有的权限,根据会员所属的身份到pw_permission表中判断,数组中具体项目的意思看上面的相关参数说明对照即可。


引申:

$forumset是论坛版块设置信息