// LastLogin implements loginEntity.LastLogin. func (u *modelUserEntity) LastLogin() (time.Time, error) { // The last connection for the model takes precedence over // the local user last login time. t, err := u.modelUser.LastConnection() if state.IsNeverConnectedError(err) { if u.user != nil { // There's a global user, so use that login time instead. return u.user.LastLogin() } // Since we're implementing LastLogin, we need // to implement LastLogin error semantics too. err = state.NeverLoggedInError(err.Error()) } return t, err }
// LastLogin implements loginEntity.LastLogin. func (u *modelUserEntity) LastLogin() (time.Time, error) { // The last connection for the model takes precedence over // the local user last login time. var err error var t time.Time if !permission.IsEmptyUserAccess(u.modelUser) { t, err = u.st.LastModelConnection(u.modelUser.UserTag) } else { err = state.NeverConnectedError("controller user") } if state.IsNeverConnectedError(err) || permission.IsEmptyUserAccess(u.modelUser) { if u.user != nil { // There's a global user, so use that login time instead. return u.user.LastLogin() } // Since we're implementing LastLogin, we need // to implement LastLogin error semantics too. err = state.NeverLoggedInError(err.Error()) } return t, errors.Trace(err) }