82 lines
2.1 KiB
PHP
Executable File
82 lines
2.1 KiB
PHP
Executable File
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | 宏驰云科技开发团队 版权所有 拥有最终解释权
|
|
// +----------------------------------------------------------------------
|
|
|
|
// | Author: HcyShop-kiki
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\admin\validate;
|
|
|
|
use think\Db;
|
|
use think\Validate;
|
|
|
|
class Auth extends Validate
|
|
{
|
|
|
|
protected $rule = [
|
|
'name' => 'require',
|
|
'disable' => 'require|in:0,1',
|
|
//'uri' => 'uri',
|
|
'type' => 'type',
|
|
'sort' => 'integer|between:1,1000'
|
|
];
|
|
|
|
protected $message = [
|
|
'name.require' => '菜单名称不能为空',
|
|
//'uri.require' => '地址不存在',
|
|
'sort.integer' => '排序必须为正整数',
|
|
'sort.between' => '排序范围必须在1到1000之间',
|
|
];
|
|
|
|
|
|
/**
|
|
* url规则验证
|
|
* @param $uri
|
|
* @return bool
|
|
*/
|
|
public function uri($uri)
|
|
{
|
|
if ($uri === '') {
|
|
return true;
|
|
}
|
|
if (count(explode('/', $uri)) != 2) {
|
|
return false;
|
|
}
|
|
|
|
list($controller, $function) = explode('/', $uri);
|
|
$controller = 'app\admin\controller\\' . ucfirst($controller);
|
|
if (!class_exists($controller)) {
|
|
return false;
|
|
}
|
|
$class = new $controller;
|
|
if (!method_exists($class, $function)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
/**
|
|
* 类型验证
|
|
* @param $type
|
|
* @param $other
|
|
* @param $data
|
|
* @return bool|string
|
|
*/
|
|
public function type($type, $other, $data)
|
|
{
|
|
if ($type == 2 && $data['pid'] == 0) {
|
|
return '类型为权限的不能设置为顶级';
|
|
}
|
|
$data['id'] = empty($data['id']) ? 0 : $data['id'];
|
|
$result = Db::name('dev_auth')
|
|
->where('id', '<>', $data['id'])
|
|
->where(['pid' => $data['pid'], 'del' => 0])
|
|
->value('type');
|
|
if (!empty($result) && $result != $data['type']) {
|
|
return '类型错误,必须设置与同一级一样';
|
|
}
|
|
return true;
|
|
}
|
|
} |