go-common/app/interface/main/tv/service/view/access.go

47 lines
1.3 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package view
import (
"context"
"go-common/app/interface/main/tv/dao/account"
"go-common/app/service/main/archive/model/archive"
"go-common/library/ecode"
"go-common/library/log"
)
// checkAceess check user Aceess
func (s *Service) checkAceess(c context.Context, mid, aid int64, state, access int, ak, ip string) (err error) {
if state >= 0 && access == 0 {
return
}
if state < 0 {
if state == archive.StateForbidFixed {
log.Warn("archive(%d) is fixed", aid)
} else if state == archive.StateForbidUpDelete {
log.Warn("archive(%d) is deleted", aid)
} else {
log.Warn("mid(%d) have not access view not pass archive(%d) ", mid, aid)
}
err = ecode.NothingFound
return
}
if mid == 0 {
log.Warn("not login can not view(%d) state(%d) access(%d) mid(%d)", aid, state, access, mid)
err = ecode.AccessDenied
s.prom.Incr("no_login_access")
return
}
card, err := s.accDao.Card3(c, mid)
if err != nil {
log.Warn("s.accDao.Info failed can not view(%d) state(%d) access(%d)", aid, state, access)
s.prom.Incr("err_login_access")
return
}
if access > 0 && int(card.Rank) < access && !account.IsVip(card) {
err = ecode.AccessDenied
log.Warn("mid(%d) rank(%d) vip(tp:%d,status:%d) have not access(%d) view archive(%d) ", mid, card.Rank, card.Vip.Type, card.Vip.Status, access, aid)
s.prom.Incr("login_access")
}
return
}