From 583e4490bb0ff57ed747f5f3e5f9f0da333c0215 Mon Sep 17 00:00:00 2001 From: zhaoxiang <756958008@qq.com> Date: Sun, 20 Nov 2016 23:26:59 +0800 Subject: [PATCH] =?UTF-8?q?modified=20=E5=85=A8=E9=A1=B9=E7=9B=AE=E8=B0=83?= =?UTF-8?q?=E6=95=B4=EF=BC=8C=E9=80=82=E9=85=8D=E5=AE=89=E8=A3=85=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=EF=BC=8C=E5=AE=8C=E6=88=90=E5=AE=89=E8=A3=85=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E7=9A=84=E6=95=B0=E6=8D=AE=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E5=92=8C=E9=85=8D=E7=BD=AE=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +- application/admin/config.php | 1 - application/admin/model/User.php | 4 +- application/common.php | 11 +- application/config.php | 209 ---------------------- application/database.php | 51 ------ application/extra/index.html | 0 application/install/common.php | 42 ++--- application/install/controller/Index.php | 91 +++++++++- application/install/data/base.tpl | 8 + application/install/data/cache.tpl | 16 ++ application/install/data/database.tpl | 22 +++ application/install/data/install.sql | 153 ++++++++++++++++ application/install/model/index.html | 0 application/install/view/index/step4.html | 31 ++++ 15 files changed, 334 insertions(+), 308 deletions(-) delete mode 100644 application/database.php create mode 100644 application/extra/index.html create mode 100644 application/install/data/base.tpl create mode 100644 application/install/data/cache.tpl create mode 100644 application/install/data/database.tpl create mode 100644 application/install/data/install.sql create mode 100644 application/install/model/index.html create mode 100644 application/install/view/index/step4.html diff --git a/README.md b/README.md index 70a39d4..58a5a64 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ **项目构成** -- ThinkPHP V5 +- ThinkPHP v5.0.2 - AdminLTE v2.3.7 - fastClick - jQuery v3.1.1 @@ -32,6 +32,7 @@ 1. 拥有高可用的菜单系统。 2. 拥有强大的权限管理系统。 + 2. 页面实现纯JS加载。 3. 拥有易懂的项目使用手册。(未完成) 4. 拥有优雅的项目对接机制。(未完成) 5. 拥有漂亮的接口文档自动生成机制。(未完成) diff --git a/application/admin/config.php b/application/admin/config.php index b778b70..10d4f20 100644 --- a/application/admin/config.php +++ b/application/admin/config.php @@ -1,6 +1,5 @@ 'mbvUenPqbpxT5WTAXXkFVPHF})0AOGfsMIN01XLu52SgS 3600 ]; \ No newline at end of file diff --git a/application/admin/model/User.php b/application/admin/model/User.php index 1a75272..eec660c 100644 --- a/application/admin/model/User.php +++ b/application/admin/model/User.php @@ -18,8 +18,8 @@ class User extends Model { return $this->getPwdHash($value); } - public function getPwdHash( $pwd ){ - $hashKey = config('auth_key'); + public function getPwdHash( $pwd, $authKey = '' ){ + $hashKey = empty($authKey)?config('base')['auth_key']:$authKey; $newPwd = $pwd.$hashKey; return md5(sha1($newPwd).$hashKey); } diff --git a/application/common.php b/application/common.php index 6ae36b1..582c41b 100644 --- a/application/common.php +++ b/application/common.php @@ -15,25 +15,26 @@ * @return bool */ function isAdministrator( $uid = '' ){ + $adminConf = config('base')['USER_ADMINISTRATOR']; $uid = empty($uid) ? session('uid') : $uid; - if( is_array(config('USER_ADMINISTRATOR')) ){ + if( is_array($adminConf) ){ if( is_array( $uid ) ){ - $m = array_intersect( config('USER_ADMINISTRATOR'), $uid ); + $m = array_intersect( $adminConf, $uid ); if( count($m) ){ return TRUE; } }else{ - if( in_array( $uid, config('USER_ADMINISTRATOR') ) ){ + if( in_array( $uid, $adminConf ) ){ return TRUE; } } }else{ if( is_array( $uid ) ){ - if( in_array(config('USER_ADMINISTRATOR'),$uid) ){ + if( in_array($adminConf,$uid) ){ return TRUE; } }else{ - if( $uid == config('USER_ADMINISTRATOR')){ + if( $uid == $adminConf){ return TRUE; } } diff --git a/application/config.php b/application/config.php index 27d3427..24a6d9a 100644 --- a/application/config.php +++ b/application/config.php @@ -15,127 +15,11 @@ return [ 'WEBSITE_DOMAIN' => 'http://zxblog.our-dream.cn', //官方网址 'COMPANY_NAME' => 'ApiAdmin开发维护团队', //公司名称 'SQL_PRIMARY_KEY' => 'id', - 'USER_ADMINISTRATOR' => 4, - // +---------------------------------------------------------------------- - // | 应用设置 - // +---------------------------------------------------------------------- - - // 应用命名空间 - 'app_namespace' => 'app', // 应用调试模式 'app_debug' => true, // 应用Trace 'app_trace' => false, - // 应用模式状态 - 'app_status' => '', - // 是否支持多模块 - 'app_multi_module' => true, - // 入口自动绑定模块 - 'auto_bind_module' => false, - // 注册的根命名空间 - 'root_namespace' => [], - // 扩展函数文件 - 'extra_file_list' => [THINK_PATH . 'helper' . EXT], - // 默认输出类型 - 'default_return_type' => 'html', - // 默认AJAX 数据返回格式,可选json xml ... - 'default_ajax_return' => 'json', - // 默认JSONP格式返回的处理方法 - 'default_jsonp_handler' => 'jsonpReturn', - // 默认JSONP处理方法 - 'var_jsonp_handler' => 'callback', - // 默认时区 - 'default_timezone' => 'PRC', - // 是否开启多语言 - 'lang_switch_on' => false, - // 默认全局过滤方法 用逗号分隔多个 - 'default_filter' => '', - // 默认语言 - 'default_lang' => 'zh-cn', - // 应用类库后缀 - 'class_suffix' => false, - // 控制器类后缀 - 'controller_suffix' => false, - - // +---------------------------------------------------------------------- - // | 模块设置 - // +---------------------------------------------------------------------- - - // 默认模块名 - 'default_module' => 'index', - // 禁止访问模块 - 'deny_module_list' => ['common'], - // 默认控制器名 - 'default_controller' => 'Index', - // 默认操作名 - 'default_action' => 'index', - // 默认验证器 - 'default_validate' => '', - // 默认的空控制器名 - 'empty_controller' => 'Error', - // 操作方法后缀 - 'action_suffix' => '', - // 自动搜索控制器 - 'controller_auto_search' => false, - - // +---------------------------------------------------------------------- - // | URL设置 - // +---------------------------------------------------------------------- - - // PATHINFO变量名 用于兼容模式 - 'var_pathinfo' => 's', - // 兼容PATH_INFO获取 - 'pathinfo_fetch' => ['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL'], - // pathinfo分隔符 - 'pathinfo_depr' => '/', - // URL伪静态后缀 - 'url_html_suffix' => 'html', - // URL普通方式参数 用于自动生成 - 'url_common_param' => false, - // URL参数方式 0 按名称成对解析 1 按顺序解析 - 'url_param_type' => 0, - // 是否开启路由 - 'url_route_on' => true, - // 路由使用完整匹配 - 'route_complete_match' => false, - // 路由配置文件(支持配置多个) - 'route_config_file' => ['route'], - // 是否强制使用路由 - 'url_route_must' => false, - // 域名部署 - 'url_domain_deploy' => false, - // 域名根,如thinkphp.cn - 'url_domain_root' => '', - // 是否自动转换URL中的控制器和操作名 - 'url_convert' => true, - // 默认的访问控制器层 - 'url_controller_layer' => 'controller', - // 表单请求类型伪装变量 - 'var_method' => '_method', - - // +---------------------------------------------------------------------- - // | 模板设置 - // +---------------------------------------------------------------------- - - 'template' => [ - // 模板引擎类型 支持 php think 支持扩展 - 'type' => 'Think', - // 模板路径 - 'view_path' => '', - // 模板后缀 - 'view_suffix' => 'html', - // 模板文件名分隔符 - 'view_depr' => DS, - // 模板引擎普通标签开始标记 - 'tpl_begin' => '{', - // 模板引擎普通标签结束标记 - 'tpl_end' => '}', - // 标签库标签开始标记 - 'taglib_begin' => '{', - // 标签库标签结束标记 - 'taglib_end' => '}', - ], // 视图输出字符串内容替换 'view_replace_str' => [ @@ -148,97 +32,4 @@ return [ // 默认跳转页面对应的模板文件 'dispatch_success_tmpl' => 'public/jump', 'dispatch_error_tmpl' => 'public/jump', - - // +---------------------------------------------------------------------- - // | 异常及错误设置 - // +---------------------------------------------------------------------- - - // 异常页面的模板文件 - 'exception_tmpl' => THINK_PATH . 'tpl' . DS . 'think_exception.tpl', - - // 错误显示信息,非调试模式有效 - 'error_message' => '页面错误!请稍后再试~', - // 显示错误信息 - 'show_error_msg' => false, - // 异常处理handle类 留空使用 \think\exception\Handle - 'exception_handle' => '', - - // +---------------------------------------------------------------------- - // | 日志设置 - // +---------------------------------------------------------------------- - - 'log' => [ - // 日志记录方式,内置 file socket 支持扩展 - 'type' => 'File', - // 日志保存目录 - 'path' => LOG_PATH, - // 日志记录级别 - 'level' => [], - ], - - // +---------------------------------------------------------------------- - // | Trace设置 开启 app_trace 后 有效 - // +---------------------------------------------------------------------- - 'trace' => [ - // 内置Html Console 支持扩展 - 'type' => 'Html', - ], - - // +---------------------------------------------------------------------- - // | 缓存设置 - // +---------------------------------------------------------------------- - - 'cache' => [ - // 驱动方式 - 'type' => 'File', - // 缓存保存目录 - 'path' => CACHE_PATH, - // 缓存前缀 - 'prefix' => '', - // 缓存有效期 0表示永久缓存 - 'expire' => 0, - ], - - // +---------------------------------------------------------------------- - // | 会话设置 - // +---------------------------------------------------------------------- - - 'session' => [ - 'id' => '', - // SESSION_ID的提交变量,解决flash上传跨域 - 'var_session_id' => '', - // SESSION 前缀 - 'prefix' => 'think', - // 驱动方式 支持redis memcache memcached - 'type' => '', - // 是否自动开启 SESSION - 'auto_start' => true, - ], - - // +---------------------------------------------------------------------- - // | Cookie设置 - // +---------------------------------------------------------------------- - 'cookie' => [ - // cookie 名称前缀 - 'prefix' => '', - // cookie 保存时间 - 'expire' => 0, - // cookie 保存路径 - 'path' => '/', - // cookie 有效域名 - 'domain' => '', - // cookie 启用安全传输 - 'secure' => false, - // httponly设置 - 'httponly' => '', - // 是否使用 setcookie - 'setcookie' => true, - ], - - //分页配置 - 'paginate' => [ - 'type' => 'bootstrap', - 'var_page' => 'page', - 'list_rows' => 15, - ], ]; diff --git a/application/database.php b/application/database.php deleted file mode 100644 index 92a4bce..0000000 --- a/application/database.php +++ /dev/null @@ -1,51 +0,0 @@ - -// +---------------------------------------------------------------------- - -return [ - // 数据库类型 - 'type' => 'mysql', - // 服务器地址 - 'hostname' => '127.0.0.1', - // 数据库名 - 'database' => 'admin', - // 用户名 - 'username' => 'root', - // 密码 - 'password' => '123456', - // 端口 - 'hostport' => '', - // 连接dsn - 'dsn' => '', - // 数据库连接参数 - 'params' => [], - // 数据库编码默认采用utf8 - 'charset' => 'utf8', - // 数据库表前缀 - 'prefix' => '', - // 数据库调试模式 - 'debug' => true, - // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) - 'deploy' => 0, - // 数据库读写是否分离 主从式有效 - 'rw_separate' => false, - // 读写分离后 主服务器数量 - 'master_num' => 1, - // 指定从服务器序号 - 'slave_no' => '', - // 是否严格检查字段是否存在 - 'fields_strict' => true, - // 数据集返回类型 array 数组 collection Collection对象 - 'resultset_type' => 'array', - // 是否自动写入时间戳字段 - 'auto_timestamp' => false, - // 是否需要进行SQL性能分析 - 'sql_explain' => false, -]; diff --git a/application/extra/index.html b/application/extra/index.html new file mode 100644 index 0000000..e69de29 diff --git a/application/install/common.php b/application/install/common.php index 235946d..fa839a5 100644 --- a/application/install/common.php +++ b/application/install/common.php @@ -66,17 +66,23 @@ function checkEnv(){ */ function checkDirFile(){ $items = [ - '0' => [ + [ 'type' => 'file', - 'path' => ROOT_PATH . 'application/database.php', + 'path' => APP_PATH . 'database.php', 'title' => '可写', 'icon' => 'fa fa-check text-success', ], - '2' => [ + [ 'type' => 'dir', 'path' => RUNTIME_PATH, 'title' => '可写', 'icon' => 'fa fa-check text-success', + ], + [ + 'type' => 'dir', + 'path' => APP_PATH . 'extra' . DS, + 'title' => '可写', + 'icon' => 'fa fa-check text-success', ] ]; @@ -289,39 +295,13 @@ function baseCheck($items){ return $items; } -/** - * 写入配置文件 - * @param $config - * @param $type string 配置类型 - * @return bool - */ -function write_config($config, $type){ - if(is_array($config)){ - show_msg('开始写入'.$type.'配置文件'); - //读取配置内容 - $conf = file_get_contents(MODULE_PATH . 'Data/'.$type.'.tpl'); - //替换配置项 - foreach ($config as $name => $value) { - $conf = str_replace("[{$name}]", $value, $conf); - } - //写入应用配置文件 - if(file_put_contents(APP_PATH . 'Common/Conf/'.$type.'.php', $conf)){ - show_msg('配置文件'.$type.'写入成功', 'bg-success'); - }else{ - show_msg('配置文件'.$type.'写入失败!', 'bg-danger'); - session('error', true); - } - return true; - } -} - /** * @param $msg * @param string $class */ -function show_msg($msg, $class = ''){ +function showMsg($msg, $class = ''){ usleep(20000); - echo ""; + echo ""; ob_flush(); flush(); } diff --git a/application/install/controller/Index.php b/application/install/controller/Index.php index 92be073..b2cfb0b 100644 --- a/application/install/controller/Index.php +++ b/application/install/controller/Index.php @@ -1,8 +1,8 @@ error('环境检测没有通过,请调整环境后重试!', url('step3')); }else{ $step = session('step'); - if( $step != 3){ - $this->error("请按顺序安装", url('index')); - }else{ +// if( $step != 3){ +// $this->error("请按顺序安装", url('index')); +// }else{ session('step', 4); session('error', false); $dbConfig = session('dbConfig'); $cacheConfig = session('cacheConfig'); $adminConfig = session('adminConfig'); + //暂不生效 $isCover = session('isCover'); + $extraConfPath = APP_PATH.'extra'.DS; - //检测数据库连接 + //生成加密秘钥 + $addChars = '`~!@#$%^&*()_+-=[]{};:"|,.<>/?'; + $baseConfig['AUTH_KEY'] = $auth = \StrOrg::randString(64, '', $addChars); + //处理管理员密码 + $adminPass = (new User())->getPwdHash($adminConfig['pass'], $auth); + $regIp = $this->request->ip(1); + //检测数据库连接,并且初始化数据 if( $dbConfig['DB_TYPE'] == 0 ){ + $dbConfig['DB_TYPE'] = 'mysql'; $dsn = "mysql:dbname={$dbConfig['DB_NAME']};host={$dbConfig['DB_HOST']};port={$dbConfig['DB_PORT']}"; try { - new \PDO($dsn, $dbConfig['DB_USER'], $dbConfig['DB_PWD']); + $db = new \PDO($dsn, $dbConfig['DB_USER'], $dbConfig['DB_PWD']); } catch (\PDOException $e) { $this->error($e->getMessage(), url('step2')); } + $this->writeConfig($dbConfig, 'database', APP_PATH); + $this->executeSQL($db, $dbConfig['DB_PREFIX']); + $adminSql = "INSERT INTO `{$dbConfig['DB_PREFIX']}user` (`username`, `nickname`, `password`, `regTime`, `regIp`, `status`) ". + "VALUES ('{$adminConfig['name']}','系统管理员','{$adminPass}',".time().",{$regIp},1);"; + $db->exec($adminSql); + $baseConfig['ADMIN_ID'] = $db->lastInsertId(); } - //检测Redis链接状态 + //检测Redis链接状态,并且初始化配置 if( $cacheConfig['type'] == 1 ){ try { (new \Redis())->connect($cacheConfig['ip'],$cacheConfig['port']); } catch (\RedisException $e) { $this->error($e->getMessage(), url('step2')); } + $this->writeConfig($cacheConfig, 'cache', $extraConfPath); } - + $this->writeConfig($baseConfig, 'base', $extraConfPath); return $this->fetch(); } +// } + } + + /** + * 写入配置文件 + * @param $config + * @param $type string 配置类型 + * @param $path string 配置文件存储路径 + * @return bool + */ + private function writeConfig($config, $type, $path){ + if(is_array($config)){ + showMsg('开始写入'.$type.'配置文件'); + //读取配置内容 + $conf = file_get_contents(APP_PATH . $this->request->module(). DS . 'data'. DS .$type.'.tpl'); + //替换配置项 + foreach ($config as $name => $value) { + $conf = str_replace("[{$name}]", $value, $conf); + } + //写入应用配置文件 + if(file_put_contents($path.$type.'.php', $conf)){ + showMsg('配置文件'.$type.'写入成功', 'bg-success'); + }else{ + showMsg('配置文件'.$type.'写入失败!', 'bg-danger'); + session('error', true); + } + return true; + } + } + + /** + * 执行sql文件,初始化数据 + * @param $db + * @param $prefix + */ + private function executeSQL($db, $prefix = '') { + //读取SQL文件 + $sql = file_get_contents(APP_PATH . $this->request->module(). DS . 'data'. DS .'install.sql'); + $sql = str_replace("\r", "\n", $sql); + $sql = explode(";\n", $sql); + + //开始安装 + showMsg('开始安装数据库...'); + foreach ($sql as $value) { + $value = trim($value); + if (empty($value)) continue; + if (substr($value, 0, 12) == 'CREATE TABLE') { + $name = preg_replace('/^CREATE TABLE `(\w+)` .*/s', "\\1", $value); + $value = str_replace(" `{$name}", " `{$prefix}{$name}", $value); + $msg = "创建数据表{$name}"; + if (false !== $db->exec($value)) { + showMsg($msg . '...成功'); + } else { + showMsg($msg . '...失败!', 'error'); + session('error', true); + } + } else { + $db->exec($value); + } } } diff --git a/application/install/data/base.tpl b/application/install/data/base.tpl new file mode 100644 index 0000000..7e4d10e --- /dev/null +++ b/application/install/data/base.tpl @@ -0,0 +1,8 @@ + '[AUTH_KEY]', + 'USER_ADMINISTRATOR' => '[ADMIN_ID]', +]; \ No newline at end of file diff --git a/application/install/data/cache.tpl b/application/install/data/cache.tpl new file mode 100644 index 0000000..17d63d5 --- /dev/null +++ b/application/install/data/cache.tpl @@ -0,0 +1,16 @@ + [ + // 驱动方式 + 'type' => 'File', + // 缓存保存目录 + 'path' => CACHE_PATH, + // 缓存前缀 + 'prefix' => '', + // 缓存有效期 0表示永久缓存 + 'expire' => 0, + ] +]; diff --git a/application/install/data/database.tpl b/application/install/data/database.tpl new file mode 100644 index 0000000..8b56e87 --- /dev/null +++ b/application/install/data/database.tpl @@ -0,0 +1,22 @@ + '[DB_TYPE]', + // 服务器地址 + 'hostname' => '[DB_HOST]', + // 数据库名 + 'database' => '[DB_NAME]', + // 用户名 + 'username' => '[DB_USER]', + // 密码 + 'password' => '[DB_PWD]', + // 端口 + 'hostport' => '[DB_PORT]', + // 数据库编码默认采用utf8 + 'charset' => 'utf8', + // 数据库表前缀 + 'prefix' => '[DB_PREFIX]', +]; \ No newline at end of file diff --git a/application/install/data/install.sql b/application/install/data/install.sql new file mode 100644 index 0000000..552c996 --- /dev/null +++ b/application/install/data/install.sql @@ -0,0 +1,153 @@ +# ************************************************************ +# Sequel Pro SQL dump +# Version 4541 +# +# http://www.sequelpro.com/ +# https://github.com/sequelpro/sequelpro +# +# Host: 127.0.0.1 (MySQL 5.7.14-log) +# Database: admin +# Generation Time: 2016-11-20 12:17:44 +0000 +# ************************************************************ + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + + +# Dump of table auth_group +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `auth_group`; + +CREATE TABLE `auth_group` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL COMMENT '组名称', + `description` varchar(50) NOT NULL COMMENT '组描述', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '组状态:为1正常,为0禁用', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限组'; + + +# Dump of table auth_group_access +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `auth_group_access`; + +CREATE TABLE `auth_group_access` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `uid` mediumint(8) unsigned NOT NULL, + `group_id` mediumint(8) unsigned NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户和组的对应关系'; + +# Dump of table auth_rule +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `auth_rule`; + +CREATE TABLE `auth_rule` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `url` char(80) NOT NULL DEFAULT '' COMMENT '规则唯一标识', + `group_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '权限所属组的ID', + `auth` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '权限数值', + `status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态:为1正常,为0禁用', + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`url`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限细节'; + +# Dump of table menu +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `menu`; + +CREATE TABLE `menu` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '' COMMENT '菜单名', + `fid` int(11) NOT NULL COMMENT '父级菜单ID', + `url` varchar(50) NOT NULL DEFAULT '' COMMENT '链接', + `auth` tinyint(2) NOT NULL DEFAULT '0' COMMENT '访客权限', + `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序', + `hide` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否显示', + `icon` varchar(50) NOT NULL DEFAULT '' COMMENT '菜单图标', + `level` tinyint(2) NOT NULL DEFAULT '0' COMMENT '菜单认证等级', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='目录信息'; + +LOCK TABLES `menu` WRITE; +/*!40000 ALTER TABLE `menu` DISABLE KEYS */; + +INSERT INTO `menu` (`id`, `name`, `fid`, `url`, `auth`, `sort`, `hide`, `icon`, `level`) +VALUES + (1,'系统维护',0,'',0,1,0,'fa-institution',1), + (2,'菜单管理',1,'Menu/index',0,1,0,'fa-navicon',0), + (3,'用户管理',1,'User/index',0,2,0,'fa-users',0), + (4,'权限管理',1,'Auth/index',0,3,0,'fa-bolt',0), + (5,'操作日志',1,'UserLog/index',0,4,0,'fa-suitcase',0), + (6,'首页',0,'Index/index',0,0,1,'',0), + (7,'新增菜单',2,'Menu/add',0,0,0,'',0), + (8,'编辑菜单',2,'Menu/edit',0,0,0,'',0), + (9,'删除菜单',2,'Menu/del',0,0,0,'',0), + (10,'新增用户',3,'User/add',0,0,0,'',0), + (11,'删除用户',3,'User/del',0,0,0,'',0), + (12,'启用用户',3,'User/open',0,0,0,'',0), + (13,'禁用用户',3,'User/close',0,0,0,'',0), + (14,'修改用户',3,'User/edit',0,0,0,'',0), + (15,'新增用户组',4,'Auth/add',0,0,0,'',0), + (16,'删除用户组',4,'Auth/del',0,0,0,'',0), + (17,'编辑用户组',4,'Auth/edit',0,0,0,'',0), + (18,'启用用户组',4,'Auth/open',0,0,0,'',0), + (19,'禁用用户组',4,'Auth/close',0,0,0,'',0), + (20,'获取组权限',4,'Auth/access',0,0,0,'',0), + (21,'组用户管理',4,'Auth/userAuth',0,0,0,'',0), + (22,'用户赋权',4,'Auth/group',0,0,0,'',0); + +/*!40000 ALTER TABLE `menu` ENABLE KEYS */; +UNLOCK TABLES; + + +# Dump of table user +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `user`; + +CREATE TABLE `user` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(64) NOT NULL DEFAULT '' COMMENT '用户名', + `nickname` varchar(64) NOT NULL DEFAULT '' COMMENT '用户昵称', + `password` char(32) NOT NULL DEFAULT '' COMMENT '用户密码', + `regTime` int(10) NOT NULL DEFAULT '0' COMMENT '注册时间', + `regIp` varchar(11) NOT NULL DEFAULT '' COMMENT '注册IP', + `updateTime` int(10) NOT NULL DEFAULT '0' COMMENT '更新时间', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '账号状态 0封号 1正常', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员认证信息'; + +# Dump of table user_data +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `user_data`; + +CREATE TABLE `user_data` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `loginTimes` int(11) NOT NULL COMMENT '账号登录次数', + `lastLoginIp` varchar(11) NOT NULL DEFAULT '' COMMENT '最后登录IP', + `lastLoginTime` int(11) NOT NULL COMMENT '最后登录时间', + `uid` varchar(11) NOT NULL DEFAULT '' COMMENT '用户ID', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员数据表'; + + + +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/application/install/model/index.html b/application/install/model/index.html new file mode 100644 index 0000000..e69de29 diff --git a/application/install/view/index/step4.html b/application/install/view/index/step4.html new file mode 100644 index 0000000..4db20b0 --- /dev/null +++ b/application/install/view/index/step4.html @@ -0,0 +1,31 @@ +{extend name="public/base" /} +{block name="title"}系统安装Step4{/block} +{block name="nav"} +
  • 安装协议
  • +
  • 参数设置
  • +
  • 环境检测
  • +
  • 开始安装
  • +
  • 安装完成
  • +{/block} +{block name="main"} +
    +
    {:config('PRODUCT_NAME')} 开始安装
    +
    +
    +
    + + + 下一步 + 上一步 +
    +
    +{/block} \ No newline at end of file