Skip to content

Commit

Permalink
No commit message
Browse files Browse the repository at this point in the history
  • Loading branch information
Gogs committed May 31, 2019
1 parent 25f02d9 commit fb1621c
Show file tree
Hide file tree
Showing 1,949 changed files with 731,705 additions and 2 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.idea
.vscode
debug
*.log
*.git
*.exe
78 changes: 76 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,76 @@
# goapp
Gin + GORM + Casbin+vue-element-admin 实现的权限管理系统
<h1>GOAPP</h1>

<div>
基于 Gin + GORM + Casbin + vue-element-admin 实现的权限管理系统 <br/>
基于Casbin 实现RBAC权限管理 <br/>
前端实现: vue-element-admin <br/>
</div>
<br/>

## 特性

- 基于 Casbin 的 RBAC 访问控制模型
- JWT 认证
- 前后端分离

## 下载并运行

### 获取代码

```
go get -v github.com/it234/goapp
```

### 运行

- 可以直接下载打包好的桌面客户端体验,下载地址: https://pan.baidu.com/s/1wDsHH-KMQHV5tMRUv50Q3w 提取码: 9u2d
- 运行服务端:cd cmd/manageweb,go run main.go,运行成功后打开 127.0.0.1:8080
- 调试/运行web:cd website/manageweb,npm install,npm run dev
- 配置文件在(`cmd/manageweb/config.yaml`)中,用户默认为:admin/123456


#### 温馨提醒

1. 默认配置采用的是 sqlite 数据库,数据库文件(`自动生成`)在`cmd/manageweb/data/gadmin.db`。如果想切换为`mysql``postgres`,请更改配置文件,并创建数据库(表会自动创建)。
2. 日志的配置为标准输出并写入文件。

## 前端实现

- website/manageweb:基于[vue-element-admin](github.com/PanJiaChen/vue-element-admin)的实现版本

## 项目结构概览

<details>
<summary>展开查看</summary>
<pre><code>.
├── cmd 项目的主要应用
├── internal 私有应用程序和库代码
├── pkg 外部应用程序可以使用的库代码
├── scripts 数据库脚本
├── vendor 项目依赖的其他第三方库
├── website vue-element-admin
</code></pre>
</details>


## 感谢以下框架的开源支持

- [Gin] - [https://gin-gonic.com/](https://gin-gonic.com/)
- [GORM] - [http://gorm.io/](http://gorm.io/)
- [Casbin] - [https://casbin.org/](https://casbin.org/)
- [vue-element-admin] - [https://github.com/PanJiaChen/vue-element-admin/](https://panjiachen.github.io/vue-element-admin/)


## MIT License

Copyright (c) 2019 Lyric

## 与作者对话

> 该项目是利用业余时间进行开发的,主要是对golang+vue-element-admin进行一个简单的实现,如果您有更好的想法和建议请与我进行沟通,我非常期待!下面是我的微信二维码:
<img src="./wechat.jpeg" width="256" height="256" />




23 changes: 23 additions & 0 deletions cmd/manageweb/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
web:
static_path:
port: 8080
domain: 127.0.0.1:8080
read_timeout: 5
write_timeout: 5
idle_timeout: 5
gorm:
debug: true
db_type: sqlite3
max_lifetime: 7200
max_open_conns: 150
max_idle_conns: 50
table_prefix: tb_
mysql:
host: 127.0.0.1
port: 3306
user: root
password: 123456
db_name: goapp
parameters: charset=utf8&parseTime=True&loc=Asia%2FShanghai
sqlite3:
path: data/goapp.db
Binary file added cmd/manageweb/data/goapp.db
Binary file not shown.
Binary file added cmd/manageweb/dist/favicon.ico
Binary file not shown.
1 change: 1 addition & 0 deletions cmd/manageweb/dist/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=renderer content=webkit><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=/favicon.ico><title>golang-后台管理系统</title><link href=/static/css/chunk-libs.5cf311f0.css rel=stylesheet><link href=/static/css/app.39565fbf.css rel=stylesheet></head><body><script src=/static/tinymce4.7.5/tinymce.min.js></script><div id=app></div><script src=/static/js/chunk-elementUI.95b15026.js></script><script src=/static/js/chunk-libs.0d4d743a.js></script><script>(function(c){function e(e){for(var u,f,d=e[0],k=e[1],t=e[2],b=0,r=[];b<d.length;b++)f=d[b],h[f]&&r.push(h[f][0]),h[f]=0;for(u in k)Object.prototype.hasOwnProperty.call(k,u)&&(c[u]=k[u]);o&&o(e);while(r.length)r.shift()();return a.push.apply(a,t||[]),n()}function n(){for(var c,e=0;e<a.length;e++){for(var n=a[e],u=!0,f=1;f<n.length;f++){var d=n[f];0!==h[d]&&(u=!1)}u&&(a.splice(e--,1),c=k(k.s=n[0]))}return c}var u={},f={runtime:0},h={runtime:0},a=[];function d(c){return k.p+"static/js/"+({"chunk-commons":"chunk-commons"}[c]||c)+"."+{"chunk-0685ec2e":"ffa9d63c","chunk-073d525e":"4fd5c4fa","chunk-58d047ea":"54d23170","chunk-07fbc4ad":"e5de2837","chunk-21298604":"293e8e6a","chunk-29fd312e":"b959ae9f","chunk-1b9c808a":"b6dc3dbc","chunk-2d0bb23d":"376bfb41","chunk-2d0c0353":"9a90f845","chunk-2d0c8bf7":"8dde8e8b","chunk-2d0cfaef":"bf365a7b","chunk-2d0d3cc1":"ed82c4c8","chunk-2d0e4e1f":"c61e2cca","chunk-2d0e944c":"0069aa15","chunk-2d2102ea":"7cd1d67f","chunk-2d2104c6":"9be906f1","chunk-2d226555":"a77a9eff","chunk-078483b6":"d239c265","chunk-6ca64b08":"81cd5dd7","chunk-2d226cab":"59eea8b8","chunk-2d229205":"a9e5fdcc","chunk-2d230fe7":"c3c3e7f6","chunk-31d330bb":"c4627102","chunk-35abafbe":"fb41e1fe","chunk-449782a1":"458a6d95","chunk-4c9ef285":"7cc5ad19","chunk-4f342776":"4048d191","chunk-4fe20fd4":"00143516","chunk-55b4b974":"66925dae","chunk-5705231c":"db7d3760","chunk-1f5ac81e":"21de49f0","chunk-2d22d3c7":"31ef129c","chunk-57a0c5e2":"7d859cf3","chunk-57e0b04b":"a8b92a56","chunk-37f162f0":"1b90cdb9","chunk-3b39c6a0":"a808fc09","chunk-5b8f3860":"4fd9050e","chunk-5f35d1d8":"7abb1327","chunk-45f5f85e":"c504ecd1","chunk-3f98e9f2":"fb69764b","chunk-61be52ce":"039a3a17","chunk-6573155c":"8259a137","chunk-76f5ed14":"f62cccc7","chunk-97e1088c":"17684aba","chunk-980a70e8":"05128bdc","chunk-bacc0f62":"7d5d347b","chunk-commons":"ca52b897","chunk-12f41759":"0f3f1232","chunk-15f21554":"313e9881","chunk-73ac306c":"9fbe3580","chunk-1c91c46c":"1eefc66c","chunk-33c62fae":"1e457df8","chunk-2d0a519f":"5adb3e19","chunk-2d0f0a2e":"195fcb9d","chunk-3bfadc86":"d12e9483","chunk-3d4bb984":"bcb6b4b4","chunk-40abcd22":"22099f03","chunk-48708407":"3666d127","chunk-04f210a8":"460d6baf","chunk-4f247856":"1ee4926c","chunk-ae4093bc":"bffb1a88","chunk-b44a48bc":"038fe4cc","chunk-59f66a77":"de141149","chunk-65c15122":"8b8424c5","chunk-66366d96":"8f61d443","chunk-d63b199a":"16500671","chunk-f7a32324":"70ef81e7","chunk-7a3c6515":"6f468a15","chunk-2c6fa02e":"056acffa","chunk-2d0e6c67":"01f0296f","chunk-031a1b34":"95cd2b9f","chunk-43f8ff7c":"f3893383"}[c]+".js"}function k(e){if(u[e])return u[e].exports;var n=u[e]={i:e,l:!1,exports:{}};return c[e].call(n.exports,n,n.exports,k),n.l=!0,n.exports}k.e=function(c){var e=[],n={"chunk-0685ec2e":1,"chunk-073d525e":1,"chunk-58d047ea":1,"chunk-07fbc4ad":1,"chunk-21298604":1,"chunk-29fd312e":1,"chunk-1b9c808a":1,"chunk-078483b6":1,"chunk-6ca64b08":1,"chunk-35abafbe":1,"chunk-449782a1":1,"chunk-4f342776":1,"chunk-4fe20fd4":1,"chunk-55b4b974":1,"chunk-1f5ac81e":1,"chunk-57a0c5e2":1,"chunk-37f162f0":1,"chunk-3b39c6a0":1,"chunk-5b8f3860":1,"chunk-3f98e9f2":1,"chunk-61be52ce":1,"chunk-6573155c":1,"chunk-76f5ed14":1,"chunk-97e1088c":1,"chunk-commons":1,"chunk-12f41759":1,"chunk-73ac306c":1,"chunk-1c91c46c":1,"chunk-33c62fae":1,"chunk-3bfadc86":1,"chunk-3d4bb984":1,"chunk-40abcd22":1,"chunk-04f210a8":1,"chunk-4f247856":1,"chunk-ae4093bc":1,"chunk-b44a48bc":1,"chunk-59f66a77":1,"chunk-65c15122":1,"chunk-66366d96":1,"chunk-d63b199a":1,"chunk-f7a32324":1,"chunk-7a3c6515":1};f[c]?e.push(f[c]):0!==f[c]&&n[c]&&e.push(f[c]=new Promise(function(e,n){for(var u="static/css/"+({"chunk-commons":"chunk-commons"}[c]||c)+"."+{"chunk-0685ec2e":"9c85be9f","chunk-073d525e":"afb20729","chunk-58d047ea":"68b1d23e","chunk-07fbc4ad":"6b3ecdfb","chunk-21298604":"dc8e6015","chunk-29fd312e":"e35ff339","chunk-1b9c808a":"29989ef9","chunk-2d0bb23d":"31d6cfe0","chunk-2d0c0353":"31d6cfe0","chunk-2d0c8bf7":"31d6cfe0","chunk-2d0cfaef":"31d6cfe0","chunk-2d0d3cc1":"31d6cfe0","chunk-2d0e4e1f":"31d6cfe0","chunk-2d0e944c":"31d6cfe0","chunk-2d2102ea":"31d6cfe0","chunk-2d2104c6":"31d6cfe0","chunk-2d226555":"31d6cfe0","chunk-078483b6":"cd12921d","chunk-6ca64b08":"62215261","chunk-2d226cab":"31d6cfe0","chunk-2d229205":"31d6cfe0","chunk-2d230fe7":"31d6cfe0","chunk-31d330bb":"31d6cfe0","chunk-35abafbe":"05f57e91","chunk-449782a1":"0b3f9ad6","chunk-4c9ef285":"31d6cfe0","chunk-4f342776":"b0d8cc80","chunk-4fe20fd4":"48780823","chunk-55b4b974":"2ac06baa","chunk-5705231c":"31d6cfe0","chunk-1f5ac81e":"0113d5d3","chunk-2d22d3c7":"31d6cfe0","chunk-57a0c5e2":"929e3bf4","chunk-57e0b04b":"31d6cfe0","chunk-37f162f0":"4387de2a","chunk-3b39c6a0":"b8765dea","chunk-5b8f3860":"6c93fad3","chunk-5f35d1d8":"31d6cfe0","chunk-45f5f85e":"31d6cfe0","chunk-3f98e9f2":"8e02d1a5","chunk-61be52ce":"c84066be","chunk-6573155c":"0e80f6be","chunk-76f5ed14":"ef67635e","chunk-97e1088c":"41fbd3e9","chunk-980a70e8":"31d6cfe0","chunk-bacc0f62":"31d6cfe0","chunk-commons":"6eca12b5","chunk-12f41759":"6b1d3f10","chunk-15f21554":"31d6cfe0","chunk-73ac306c":"bbaf26ae","chunk-1c91c46c":"1c085057","chunk-33c62fae":"e535bead","chunk-2d0a519f":"31d6cfe0","chunk-2d0f0a2e":"31d6cfe0","chunk-3bfadc86":"11c953ff","chunk-3d4bb984":"53ac87fa","chunk-40abcd22":"c8bf35e5","chunk-48708407":"31d6cfe0","chunk-04f210a8":"8e8b39cd","chunk-4f247856":"a459c0c0","chunk-ae4093bc":"5ac85807","chunk-b44a48bc":"292ee859","chunk-59f66a77":"53ac87fa","chunk-65c15122":"99d35881","chunk-66366d96":"11c953ff","chunk-d63b199a":"21afa436","chunk-f7a32324":"860218f8","chunk-7a3c6515":"72df9e75","chunk-2c6fa02e":"31d6cfe0","chunk-2d0e6c67":"31d6cfe0","chunk-031a1b34":"31d6cfe0","chunk-43f8ff7c":"31d6cfe0"}[c]+".css",h=k.p+u,a=document.getElementsByTagName("link"),d=0;d<a.length;d++){var t=a[d],b=t.getAttribute("data-href")||t.getAttribute("href");if("stylesheet"===t.rel&&(b===u||b===h))return e()}var r=document.getElementsByTagName("style");for(d=0;d<r.length;d++){t=r[d],b=t.getAttribute("data-href");if(b===u||b===h)return e()}var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",o.onload=e,o.onerror=function(e){var u=e&&e.target&&e.target.src||h,a=new Error("Loading CSS chunk "+c+" failed.\n("+u+")");a.request=u,delete f[c],o.parentNode.removeChild(o),n(a)},o.href=h;var i=document.getElementsByTagName("head")[0];i.appendChild(o)}).then(function(){f[c]=0}));var u=h[c];if(0!==u)if(u)e.push(u[2]);else{var a=new Promise(function(e,n){u=h[c]=[e,n]});e.push(u[2]=a);var t,b=document.createElement("script");b.charset="utf-8",b.timeout=120,k.nc&&b.setAttribute("nonce",k.nc),b.src=d(c),t=function(e){b.onerror=b.onload=null,clearTimeout(r);var n=h[c];if(0!==n){if(n){var u=e&&("load"===e.type?"missing":e.type),f=e&&e.target&&e.target.src,a=new Error("Loading chunk "+c+" failed.\n("+u+": "+f+")");a.type=u,a.request=f,n[1](a)}h[c]=void 0}};var r=setTimeout(function(){t({type:"timeout",target:b})},12e4);b.onerror=b.onload=t,document.head.appendChild(b)}return Promise.all(e)},k.m=c,k.c=u,k.d=function(c,e,n){k.o(c,e)||Object.defineProperty(c,e,{enumerable:!0,get:n})},k.r=function(c){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})},k.t=function(c,e){if(1&e&&(c=k(c)),8&e)return c;if(4&e&&"object"===typeof c&&c&&c.__esModule)return c;var n=Object.create(null);if(k.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:c}),2&e&&"string"!=typeof c)for(var u in c)k.d(n,u,function(e){return c[e]}.bind(null,u));return n},k.n=function(c){var e=c&&c.__esModule?function(){return c["default"]}:function(){return c};return k.d(e,"a",e),e},k.o=function(c,e){return Object.prototype.hasOwnProperty.call(c,e)},k.p="/",k.oe=function(c){throw console.error(c),c};var t=window["webpackJsonp"]=window["webpackJsonp"]||[],b=t.push.bind(t);t.push=e,t=t.slice();for(var r=0;r<t.length;r++)e(t[r]);var o=b;n()})([]);</script><script src=/static/js/app.6a71016b.js></script></body></html>
1 change: 1 addition & 0 deletions cmd/manageweb/dist/static/css/app.39565fbf.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions cmd/manageweb/dist/static/css/chunk-04f210a8.8e8b39cd.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.chart-container[data-v-d600c0a0]{position:relative;width:100%;height:calc(100vh - 84px)}
1 change: 1 addition & 0 deletions cmd/manageweb/dist/static/css/chunk-0685ec2e.9c85be9f.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit fb1621c

Please sign in to comment.