vr-shopxo-source/service/Application/Admin/Model/PowerModel.class.php

137 lines
3.2 KiB
PHP
Executable File

<?php
namespace Admin\Model;
use Think\Model;
/**
* 权限模型
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class PowerModel extends CommonModel
{
// 数据自动校验
protected $_validate = array(
// 添加,编辑
array('name', 'CheckName', '{%power_name_format}', 1, 'callback', 3),
array('control', 'CheckControl', '{%power_control_format}', 1, 'callback', 3),
array('action', 'CheckAction', '{%power_action_format}', 1, 'callback', 3),
array('pid', 'CheckPid', '{%power_level_format}', 2, 'callback', 3),
array('sort', 'CheckSort', '{%common_sort_error}', 1, 'function', 3),
array('icon', 'CheckIcon', '{%power_icon_format}', 1, 'callback', 3),
array('pid', 'CheckMyPid', '{%common_pid_eq_myid_format}', 1, 'callback', 2),
// 删除
array('id', 'CheckPowerIsExist', '{%power_no_exist_tips}', 1, 'callback', 5),
array('id', 'CheckPowerIsItem', '{%power_exist_item_tips}', 1, 'callback', 5),
);
/**
* [CheckIcon 图标class校验]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-13T19:29:30+0800
*/
public function CheckIcon()
{
$len = Utf8Strlen(I('icon'));
return ($len <= 60);
}
/**
* [CheckName 权限名称校验]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-13T19:29:30+0800
*/
public function CheckName()
{
$len = Utf8Strlen(I('name'));
return ($len >= 2 && $len <= 16);
}
/**
* [CheckAction 方法校验]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-13T15:12:32+0800
*/
public function CheckAction()
{
return (preg_match('/'.L('common_regex_action').'/', I('action')) == 1) ? true : false;
}
/**
* [CheckControl 控制器校验]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-13T15:12:32+0800
*/
public function CheckControl()
{
return (preg_match('/'.L('common_regex_control').'/', I('control')) == 1) ? true : false;
}
/**
* [CheckPid pid校验]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-13T19:32:40+0800
*/
public function CheckPid()
{
$pid = intval(I('pid'));
if($pid > 0)
{
$id = $this->db(0)->where(array('id'=>$pid))->getField('id');
return !empty($id);
}
return true;
}
/**
* [CheckMyPid pid是否是当前节点校验]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-13T19:32:40+0800
*/
public function CheckMyPid()
{
return (I('id') != I('pid'));
}
/**
* [CheckPowerIsExist 校验权限是否存在]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-10T14:09:40+0800
*/
public function CheckPowerIsExist()
{
$id = $this->db(0)->where(array('id'=>I('id')))->getField('id');
return !empty($id);
}
/**
* [CheckPowerIsItem 校验权限是否存在子级]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-10T14:09:40+0800
*/
public function CheckPowerIsItem()
{
$count = $this->db(0)->where(array('pid'=>I('id')))->count();
return ($count <= 0);
}
}
?>