67 lines
1.8 KiB
Go
67 lines
1.8 KiB
Go
package controllers
|
|
|
|
import (
|
|
"anytunnel/at-admin/app/models"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
type JSONResponse struct {
|
|
Code int `json:"code"`
|
|
Message interface{} `json:"message"`
|
|
Data interface{} `json:"data"`
|
|
Redirect map[string]interface{} `json:"redirect"`
|
|
}
|
|
type BaseAdminController struct {
|
|
BaseController
|
|
loginUser map[string]string
|
|
}
|
|
|
|
func (this *BaseAdminController) Prepare() {
|
|
if !this.isLogin() {
|
|
this.Redirect("/login/index.html", 302)
|
|
this.StopRun()
|
|
}
|
|
user := this.GetSession("author").(map[string]string)
|
|
this.Data["loginUser"] = user
|
|
this.loginUser = user
|
|
this.checkAccess()
|
|
this.Data["TimeNowYear"] = time.Now().Format("2006")
|
|
this.Layout = "layout/default.html"
|
|
}
|
|
func (this *BaseAdminController) checkAccess() {
|
|
controllerName, actionName := this.GetControllerAndAction()
|
|
controllerName = strings.ToLower(controllerName[0 : len(controllerName)-10])
|
|
actionName = strings.ToLower(actionName)
|
|
if (controllerName == "main" && actionName == "index") || controllerName == "main" && actionName == "default" {
|
|
return
|
|
}
|
|
//检查权限
|
|
if "1" != this.loginUser["user_id"] {
|
|
privilege := models.Privilege{}
|
|
_, _, controllers, err := privilege.GetTypedPrivileges(this.loginUser["user_id"], "-1")
|
|
if err != nil {
|
|
this.jsonError(err.Error(), "")
|
|
}
|
|
found := false
|
|
for _, c := range controllers {
|
|
action := strings.ToLower(c["action"])
|
|
if strings.Contains(action, ".") {
|
|
action = action[:strings.LastIndex(action, ".")]
|
|
}
|
|
if controllerName == strings.ToLower(c["controller"]) && actionName == action {
|
|
found = true
|
|
break
|
|
}
|
|
}
|
|
if !found {
|
|
if this.IsAjax() {
|
|
this.jsonError("您无权限进行此操作")
|
|
} else {
|
|
this.viewError("您无权限进行此操作")
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|