enum_sessCheck.go 892 B

123456789101112131415161718192021222324252627282930313233
  1. package enum
  2. var (
  3. notSession = NewEnum(0, "不需要session") //0 -> 00000000
  4. needUserSession = NewEnum(1, "需要用户session") //1 -> 00000001
  5. needEntSession = NewEnum(1<<1, "需要企业session") //2 -> 00000010
  6. )
  7. type SessCheck struct {
  8. *Enum
  9. }
  10. // NewSessCheck 初始化权限校验对象
  11. func NewSessCheck(code int64, desc ...string) *SessCheck {
  12. return &SessCheck{
  13. NewEnum(code, desc...),
  14. }
  15. }
  16. // NeedCheck 是否需要登录状态校验
  17. func (sc *SessCheck) NeedCheck() bool {
  18. return sc.GetCode() != notSession.code
  19. }
  20. // CheckUserSession 校验是否需要用户Session
  21. func (sc *SessCheck) CheckUserSession() bool {
  22. return needUserSession.code == (sc.GetCode() & needUserSession.code)
  23. }
  24. // CheckEntSession 校验是否需要企业Session
  25. func (sc *SessCheck) CheckEntSession() bool {
  26. return needEntSession.code == (sc.GetCode() & needEntSession.code)
  27. }