目录调整

This commit is contained in:
yxh
2020-02-21 17:37:08 +08:00
parent 903dac499d
commit c739d09148
16 changed files with 77 additions and 43 deletions
+29 -8
View File
@@ -2,12 +2,12 @@ package admin
import ( import (
"fmt" "fmt"
"gfast/app/model/auth_rule" "gfast/app/model/admin/auth_rule"
"gfast/app/model/role" "gfast/app/model/admin/role"
"gfast/app/model/user" "gfast/app/model/admin/user"
"gfast/app/service/auth_service" "gfast/app/service/admin/auth_service"
"gfast/app/service/admin/user_service"
"gfast/app/service/casbin_adapter_service" "gfast/app/service/casbin_adapter_service"
"gfast/app/service/user_service"
"gfast/library/response" "gfast/library/response"
"gfast/library/utils" "gfast/library/utils"
"github.com/gogf/gf/frame/g" "github.com/gogf/gf/frame/g"
@@ -34,13 +34,30 @@ func (c *Auth) MenuList(r *ghttp.Request) {
}) })
} }
//菜单排序
func (c *Auth) MenuSort(r *ghttp.Request) {
sorts := r.Get("sorts")
s := gconv.Map(sorts)
if s == nil {
response.FailJson(true, r, "排序失败")
}
for k, v := range s {
auth_rule.Model.Where("id=?", k).Data("weigh", v).Update()
}
response.SusJson(true, r, "排序成功")
}
//添加菜单 //添加菜单
func (c *Auth) AddMenu(r *ghttp.Request) { func (c *Auth) AddMenu(r *ghttp.Request) {
if r.Method == "POST" { if r.Method == "POST" {
menu := new(auth_service.MenuReq) menu := new(auth_rule.MenuReq)
if err := r.Parse(menu); err != nil { if err := r.Parse(menu); err != nil {
response.FailJson(true, r, err.(*gvalid.Error).FirstString()) response.FailJson(true, r, err.(*gvalid.Error).FirstString())
} }
//判断菜单规则是否存在
if !auth_service.CheckMenuNameUnique(menu.Name, 0) {
response.FailJson(true, r, "菜单规则名称已经存在")
}
//保存到数据库 //保存到数据库
err, _ := auth_service.AddMenu(menu) err, _ := auth_service.AddMenu(menu)
if err != nil { if err != nil {
@@ -60,12 +77,16 @@ func (c *Auth) AddMenu(r *ghttp.Request) {
//修改菜单 //修改菜单
func (c *Auth) EditMenu(r *ghttp.Request) { func (c *Auth) EditMenu(r *ghttp.Request) {
id := r.GetRequestInt("id") id := r.GetInt("id")
if r.Method == "POST" { if r.Method == "POST" {
menu := new(auth_service.MenuReq) menu := new(auth_rule.MenuReq)
if err := r.Parse(menu); err != nil { if err := r.Parse(menu); err != nil {
response.FailJson(true, r, err.(*gvalid.Error).FirstString()) response.FailJson(true, r, err.(*gvalid.Error).FirstString())
} }
//判断菜单规则是否存在
if !auth_service.CheckMenuNameUnique(menu.Name, id) {
response.FailJson(true, r, "菜单规则名称已经存在")
}
//保存到数据库 //保存到数据库
err, _ := auth_service.EditMenu(menu, id) err, _ := auth_service.EditMenu(menu, id)
if err != nil { if err != nil {
+1 -1
View File
@@ -1,7 +1,7 @@
package admin package admin
import ( import (
"gfast/app/service/user_service" "gfast/app/service/admin/user_service"
"gfast/library/response" "gfast/library/response"
"github.com/gogf/gf/frame/g" "github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp" "github.com/gogf/gf/net/ghttp"
+14
View File
@@ -0,0 +1,14 @@
package auth_rule
//菜单对象
type MenuReq struct {
IsMenu int `p:"ismenu" c:"ismenu" v:"min:0|max:1#菜单类型最小值为:min|菜单类型最大值为:max"`
Pid int `p:"pid" c:"pid" v:"min:0"`
Name string `p:"name" c:"name" v:"required#请填写规则名称"`
Title string `p:"title" c:"title" v:"required|length:1,100#请填写标题|标题长度在:min到:max位"`
Icon string `p:"icon" c:"icon"`
Weigh int `p:"weigh" c:"weigh"`
Condition string `p:"condition" c:"condition"`
Remark string `p:"remark" c:"remark"`
Status int `p:"status" c:"status"`
}
@@ -4,9 +4,9 @@ import (
"database/sql" "database/sql"
"errors" "errors"
"fmt" "fmt"
"gfast/app/model/auth_rule" "gfast/app/model/admin/auth_rule"
"gfast/app/model/role" "gfast/app/model/admin/role"
"gfast/app/model/user" "gfast/app/model/admin/user"
"gfast/app/service/casbin_adapter_service" "gfast/app/service/casbin_adapter_service"
"gfast/library/utils" "gfast/library/utils"
"github.com/gogf/gf/database/gdb" "github.com/gogf/gf/database/gdb"
@@ -17,19 +17,6 @@ import (
"github.com/gogf/gf/util/gvalid" "github.com/gogf/gf/util/gvalid"
) )
//菜单对象
type MenuReq struct {
IsMenu int `p:"ismenu" c:"ismenu" v:"min:0|max:1#菜单类型最小值为:min|菜单类型最大值为:max"`
Pid int `p:"pid" c:"pid" v:"min:0"`
Name string `p:"name" c:"name" v:"required#请填写规则名称"`
Title string `p:"title" c:"title" v:"required|length:1,100#请填写标题|标题长度在:min到:max位"`
Icon string `p:"icon" c:"icon"`
Weigh int `p:"weigh" c:"weigh"`
Condition string `p:"condition" c:"condition"`
Remark string `p:"remark" c:"remark"`
Status int `p:"status" c:"status"`
}
//获取菜单列表 //获取菜单列表
func GetMenuList(where string, params ...interface{}) (error, g.List) { func GetMenuList(where string, params ...interface{}) (error, g.List) {
var err error var err error
@@ -51,8 +38,22 @@ func GetMenuList(where string, params ...interface{}) (error, g.List) {
return nil, gList return nil, gList
} }
//检查菜单规则是否存在
func CheckMenuNameUnique(name string, id int) bool {
model := auth_rule.Model.Where("name=?", name)
if id != 0 {
model = model.And("id!=?", id)
}
c, err := model.Count()
if err != nil {
g.Log().Error(err)
return false
}
return c == 0
}
// 添加菜单操作 // 添加菜单操作
func AddMenu(req *MenuReq) (err error, insertId int64) { func AddMenu(req *auth_rule.MenuReq) (err error, insertId int64) {
menuMap := gconv.Map(req) menuMap := gconv.Map(req)
now := gtime.Timestamp() now := gtime.Timestamp()
menuMap["createtime"] = now menuMap["createtime"] = now
@@ -64,7 +65,7 @@ func AddMenu(req *MenuReq) (err error, insertId int64) {
} }
//修改菜单操作 //修改菜单操作
func EditMenu(req *MenuReq, id int) (err error, rows int64) { func EditMenu(req *auth_rule.MenuReq, id int) (err error, rows int64) {
menuMap := gconv.Map(req) menuMap := gconv.Map(req)
now := gtime.Timestamp() now := gtime.Timestamp()
menuMap["updatetime"] = now menuMap["updatetime"] = now
@@ -2,9 +2,9 @@ package user_service
import ( import (
"fmt" "fmt"
"gfast/app/model/role" "gfast/app/model/admin/role"
"gfast/app/model/user" "gfast/app/model/admin/user"
"gfast/app/service/auth_service" "gfast/app/service/admin/auth_service"
"gfast/app/service/casbin_adapter_service" "gfast/app/service/casbin_adapter_service"
"gfast/boot" "gfast/boot"
"gfast/library/utils" "gfast/library/utils"
@@ -2,7 +2,7 @@ package casbin_adapter_service
import ( import (
"fmt" "fmt"
"gfast/app/model/casbin_rule" "gfast/app/model/admin/casbin_rule"
"github.com/casbin/casbin/v2" "github.com/casbin/casbin/v2"
"github.com/casbin/casbin/v2/model" "github.com/casbin/casbin/v2/model"
"github.com/casbin/casbin/v2/persist" "github.com/casbin/casbin/v2/persist"
+5 -1
View File
@@ -4,7 +4,7 @@ import (
"database/sql" "database/sql"
"errors" "errors"
"fmt" "fmt"
"gfast/app/model/user" "gfast/app/model/admin/user"
"gfast/library/response" "gfast/library/response"
"github.com/goflyfox/gtoken/gtoken" "github.com/goflyfox/gtoken/gtoken"
"github.com/gogf/gf/crypto/gaes" "github.com/gogf/gf/crypto/gaes"
@@ -147,6 +147,10 @@ func signIn(username, password string, r *ghttp.Request) (error, *user.QxkjUser)
if qxkjUser == nil { if qxkjUser == nil {
return errors.New("账号或密码错误"), nil return errors.New("账号或密码错误"), nil
} }
//判断用户状态
if qxkjUser.UserStatus == 0 {
return errors.New("用户已被冻结"), nil
}
returnData := *qxkjUser returnData := *qxkjUser
//更新登陆时间及ip //更新登陆时间及ip
qxkjUser.LastLoginTime = gconv.Int(gtime.Timestamp()) qxkjUser.LastLoginTime = gconv.Int(gtime.Timestamp())
+5 -11
View File
@@ -2,12 +2,11 @@ package router
import ( import (
"fmt" "fmt"
"gfast/app/model/auth_rule" "gfast/app/model/admin/auth_rule"
"gfast/app/service/admin/user_service"
"gfast/app/service/casbin_adapter_service" "gfast/app/service/casbin_adapter_service"
"gfast/app/service/user_service"
"gfast/library/response" "gfast/library/response"
"gfast/library/utils" "gfast/library/utils"
"github.com/gogf/gf/encoding/gurl"
"github.com/gogf/gf/frame/g" "github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp" "github.com/gogf/gf/net/ghttp"
) )
@@ -29,14 +28,10 @@ func MiddlewareAuth(r *ghttp.Request) {
return return
} }
} }
url := r.GetUrl() url := r.Request.URL
info, err := gurl.ParseURL(url, 32) g.Log().Debug(url.Path)
if err != nil {
g.Log().Error(err)
response.FailJson(true, r, "请求地址错误")
}
//获取地址对应的菜单id //获取地址对应的菜单id
gValue, err := auth_rule.Model.Where("name=?", info["path"]).Fields("id").Value() gValue, err := auth_rule.Model.Where("name=?", url.Path).Fields("id").Value()
if err != nil { if err != nil {
g.Log().Error(err) g.Log().Error(err)
response.FailJson(true, r, "请求数据失败") response.FailJson(true, r, "请求数据失败")
@@ -56,7 +51,6 @@ func MiddlewareAuth(r *ghttp.Request) {
response.FailJson(true, r, "没有访问权限") response.FailJson(true, r, "没有访问权限")
} }
hasAccess := false hasAccess := false
g.Log().Debug(groupPolicy)
for _, v := range groupPolicy { for _, v := range groupPolicy {
if enforcer.HasPolicy(v[1], fmt.Sprintf("r_%d", menuId), "All") { if enforcer.HasPolicy(v[1], fmt.Sprintf("r_%d", menuId), "All") {
hasAccess = true hasAccess = true