mirror of https://gitee.com/karson/fastadmin.git
Pre Merge pull request !163 from wkk/master
commit
d9178af828
|
|
@ -99,6 +99,7 @@ CREATE TABLE `fa_auth_group` (
|
|||
`rules` text NOT NULL COMMENT '规则ID',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
|
||||
`updatetime` int(10) DEFAULT NULL COMMENT '更新时间',
|
||||
`expiretime` int(10) DEFAULT NULL COMMENT '过期时间',
|
||||
`status` varchar(30) NOT NULL DEFAULT '' COMMENT '状态',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='分组表';
|
||||
|
|
@ -107,11 +108,11 @@ CREATE TABLE `fa_auth_group` (
|
|||
-- Records of fa_auth_group
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `fa_auth_group` VALUES (1, 0, 'Admin group', '*', 1490883540, 149088354, 'normal');
|
||||
INSERT INTO `fa_auth_group` VALUES (2, 1, 'Second group', '13,14,16,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,40,41,42,43,44,45,46,47,48,49,50,55,56,57,58,59,60,61,62,63,64,65,1,9,10,11,7,6,8,2,4,5', 1490883540, 1505465692, 'normal');
|
||||
INSERT INTO `fa_auth_group` VALUES (3, 2, 'Third group', '1,4,9,10,11,13,14,15,16,17,40,41,42,43,44,45,46,47,48,49,50,55,56,57,58,59,60,61,62,63,64,65,5', 1490883540, 1502205322, 'normal');
|
||||
INSERT INTO `fa_auth_group` VALUES (4, 1, 'Second group 2', '1,4,13,14,15,16,17,55,56,57,58,59,60,61,62,63,64,65', 1490883540, 1502205350, 'normal');
|
||||
INSERT INTO `fa_auth_group` VALUES (5, 2, 'Third group 2', '1,2,6,7,8,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34', 1490883540, 1502205344, 'normal');
|
||||
INSERT INTO `fa_auth_group` VALUES (1, 0, 'Admin group', '*', 1490883540, 149088354, 0,'normal');
|
||||
INSERT INTO `fa_auth_group` VALUES (2, 1, 'Second group', '13,14,16,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,40,41,42,43,44,45,46,47,48,49,50,55,56,57,58,59,60,61,62,63,64,65,1,9,10,11,7,6,8,2,4,5', 1490883540, 1505465692, 0, 'normal');
|
||||
INSERT INTO `fa_auth_group` VALUES (3, 2, 'Third group', '1,4,9,10,11,13,14,15,16,17,40,41,42,43,44,45,46,47,48,49,50,55,56,57,58,59,60,61,62,63,64,65,5', 1490883540, 1502205322, 0, 'normal');
|
||||
INSERT INTO `fa_auth_group` VALUES (4, 1, 'Second group 2', '1,4,13,14,15,16,17,55,56,57,58,59,60,61,62,63,64,65', 1490883540, 1502205350, 0, 'normal');
|
||||
INSERT INTO `fa_auth_group` VALUES (5, 2, 'Third group 2', '1,2,6,7,8,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34', 1490883540, 1502205344, 0, 'normal');
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
|
|
|
|||
|
|
@ -111,6 +111,11 @@ class Group extends Backend
|
|||
// 如果当前组别不是超级管理员则需要过滤规则节点,不能超当前组别的权限
|
||||
$rules = in_array('*', $currentrules) ? $rules : array_intersect($currentrules, $rules);
|
||||
$params['rules'] = implode(',', $rules);
|
||||
//日期转时间戳
|
||||
$params['expiretime'] = empty($params['expiretime']) ? 0 : strtotime($params['expiretime']);
|
||||
if (false === $params['expiretime']) {
|
||||
$this->error(__('Invalid format of expire time'));
|
||||
}
|
||||
if ($params) {
|
||||
$this->model->create($params);
|
||||
$this->success();
|
||||
|
|
@ -144,6 +149,11 @@ class Group extends Backend
|
|||
$this->error(__('The parent group can not be its own child or itself'));
|
||||
}
|
||||
$params['rules'] = explode(',', $params['rules']);
|
||||
//日期转时间戳
|
||||
$params['expiretime'] = empty($params['expiretime']) ? 0 : strtotime($params['expiretime']);
|
||||
if (false === $params['expiretime']) {
|
||||
$this->error(__('Invalid format of expire time'));
|
||||
}
|
||||
|
||||
$parentmodel = model("AuthGroup")->get($params['pid']);
|
||||
if (!$parentmodel) {
|
||||
|
|
@ -180,6 +190,7 @@ class Group extends Backend
|
|||
$this->error();
|
||||
return;
|
||||
}
|
||||
$row['expiretime'] = $row['expiretime'] === 0 ? 0 : date("Y-m-d H:i:s", $row['expiretime']);
|
||||
$this->view->assign("row", $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ return [
|
|||
'End time' => '结束时间',
|
||||
'Create time' => '创建时间',
|
||||
'Update time' => '更新时间',
|
||||
'Expire time' => '过期时间',
|
||||
'Flag' => '标志',
|
||||
'Drag to sort' => '拖动进行排序',
|
||||
'Redirect now' => '立即跳转',
|
||||
|
|
|
|||
|
|
@ -9,4 +9,5 @@ return [
|
|||
'You can not delete group that contain child group and administrators' => '你不能删除含有子组和管理员的组',
|
||||
'The parent group exceeds permission limit' => '父组别超出权限范围',
|
||||
'The parent group can not be its own child or itself' => '父组别不能是它的子组别及本身',
|
||||
'Invalid format of expire time' => '过期时间格式错误',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -282,7 +282,8 @@ class Auth extends \fast\Auth
|
|||
}
|
||||
}
|
||||
// 取出所有分组
|
||||
$groupList = \app\admin\model\AuthGroup::where(['status' => 'normal'])->select();
|
||||
// $groupList = \app\admin\model\AuthGroup::where(['status' => 'normal'])->select();
|
||||
$groupList = \app\admin\model\AuthGroup::all();
|
||||
$objList = [];
|
||||
foreach ($groups as $k => $v) {
|
||||
if ($v['rules'] === '*') {
|
||||
|
|
|
|||
|
|
@ -22,6 +22,17 @@
|
|||
<div id="treeview"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Expire time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<span class="text-muted"><input type="checkbox" name="" id="for_ever" /> <label for="for_ever"><small>永久</small></label></span>
|
||||
<span class="text-muted"><input type="checkbox" name="" id="select_time" /> <label for="select_time"><small>选择时间</small></label></span>
|
||||
|
||||
<div id="expiretime-select" style="display: none;">
|
||||
<input class="form-control datetimepicker" name="row[expiretime]" type="text" data-date-default-date="now" data-date-min-date="now" data-rule="required" data-date-use-current="true" data-date-format="YYYY-MM-DD HH:mm:ss"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
|||
|
|
@ -22,6 +22,17 @@
|
|||
<div id="treeview"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Expire time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<span class="text-muted"><input type="checkbox" {if $row.expiretime === 0 } checked="checked" {/if} name="" id="for_ever" /> <label for="for_ever"><small>永久</small></label></span>
|
||||
<span class="text-muted"><input type="checkbox" {if $row.expiretime !== 0 } checked="checked" {/if} name="" id="select_time" /> <label for="select_time"><small>选择时间</small></label></span>
|
||||
|
||||
<div id="expiretime-select" {if $row.expiretime === 0 } style="display: none;" {/if}>
|
||||
<input class="form-control datetimepicker" name="row[expiretime]" type="text" data-date-default-date="{$row.expiretime}" data-rule="required" data-date-format="YYYY-MM-DD HH:mm:ss"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
|||
|
|
@ -153,11 +153,12 @@ class Auth
|
|||
}
|
||||
|
||||
// 执行查询
|
||||
$nowTime = time();
|
||||
$user_groups = Db::name($this->config['auth_group_access'])
|
||||
->alias('aga')
|
||||
->join('__' . strtoupper($this->config['auth_group']) . '__ ag', 'aga.group_id = ag.id', 'LEFT')
|
||||
->field('aga.uid,aga.group_id,ag.id,ag.pid,ag.name,ag.rules')
|
||||
->where("aga.uid='{$uid}' and ag.status='normal'")
|
||||
->where("aga.uid='{$uid}' and ag.status='normal' and (ag.expiretime>={$nowTime} or ag.expiretime=0)")
|
||||
->select();
|
||||
$groups[$uid] = $user_groups ?: [];
|
||||
return $groups[$uid];
|
||||
|
|
|
|||
|
|
@ -50,6 +50,24 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'jstree'], function (
|
|||
{field: 'pid', title: __('Parent')},
|
||||
{field: 'name', title: __('Name'), align: 'left'},
|
||||
{field: 'status', title: __('Status'), formatter: Table.api.formatter.status},
|
||||
{field: 'expiretime', title: __('Expire time'), formatter: function (value,row,index) {
|
||||
if (0 === value) {
|
||||
return '<a class="label label-success addtabsit">永久</a>';
|
||||
} else {
|
||||
if (value >= parseInt(new Date().getTime()/1000)) {
|
||||
var date = new Date(value * 1000);
|
||||
var Y = date.getFullYear() + '-';
|
||||
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||
var D = date.getDate() + ' ';
|
||||
var h = date.getHours() + ':';
|
||||
var m = date.getMinutes() + ':';
|
||||
var s = date.getSeconds();
|
||||
return '<a class="label label-success addtabsit">'+(Y + M + D + h + m + s)+'</a>';
|
||||
} else {
|
||||
return '<a class="label label-warning addtabsit">已过期</a>';
|
||||
}
|
||||
}
|
||||
}},
|
||||
{
|
||||
field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: function (value, row, index) {
|
||||
if (Config.admin.group_ids.indexOf(parseInt(row.id)) > -1) {
|
||||
|
|
@ -122,6 +140,18 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'jstree'], function (
|
|||
$(document).on("click", "#expandall", function () {
|
||||
$("#treeview").jstree($(this).prop("checked") ? "open_all" : "close_all");
|
||||
});
|
||||
//过期时间: 永久和选择时间
|
||||
$(document).on("click", "#for_ever", function () {
|
||||
$("#expiretime-select").attr("style","display:none;");
|
||||
$("input[name='row[expiretime]']").val('0');
|
||||
$("#select_time").removeAttr("checked");
|
||||
});
|
||||
$(document).on("click", "#select_time", function () {
|
||||
$("#expiretime-select").attr("style","display:block;");
|
||||
$("#for_ever").removeAttr("checked");
|
||||
var nowDate = new Date();
|
||||
$("input[name='row[expiretime]']").val(nowDate.getFullYear() + '-' + (nowDate.getMonth()+1) + '-' + nowDate.getDate() + ' 23:59:59');
|
||||
});
|
||||
$("select[name='row[pid]']").trigger("change");
|
||||
},
|
||||
rendertree: function (content) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue