Сессия в bee go .AddFuncMap - PullRequest
       31

Сессия в bee go .AddFuncMap

0 голосов
/ 30 мая 2020

У меня проблема с получением сеанса для ограничения навигации пользователя. В шаблоне я использую это.

<ul>
    {{if UserHasPermission `page_report`}}
    <li data-menu="staff-report">
        <a href="#"><span class="idh-nav-icon"><i class="fas fa-chart-bar"></i></span> Report</a>
    </li>
    {{end}}
</ul>

В user.go я создал init ()

func init() {
    self := new(UserController)
    beego.AddFuncMap("UserHasPermission", self.HasPermission)
}

, и это функция

func (this *UserController) HasPermission(name string) bool {
    if name == "" {
        return false
    }
    userSess := this.GetSession("user")
    if userSess == nil {
        return false
    }
    userSessMap := userSess.(map[string]interface{})
    permissions := userSessMap["permissions"].([]string)
    if utils.InSlice(name, permissions) {
        return true
    }

    return false
}

Но затем я получил ошибку

template Execute err: template: chunks/navleft.tpl:21:21: executing "chunks/navleft.tpl" at <UserHasPermission `page_report`>: error calling UserHasPermission: runtime error: invalid memory address or nil pointer dereference

this.GetSession("user") определенно виноват, но я не смог его отследить.

Кто-нибудь знает, что пошло не так? Спасибо!

...