Add validity check for subscription type when retrieving a subscription
This commit is contained in:
parent
77767b2122
commit
3a7e549e1b
|
@ -73,12 +73,26 @@ func getEntityTypeFromString(entityType string) SubscriptionEntityType {
|
|||
return SubscriptionEntityUnknown
|
||||
}
|
||||
|
||||
func (et SubscriptionEntityType) validate() error {
|
||||
if et == SubscriptionEntityNamespace ||
|
||||
et == SubscriptionEntityList ||
|
||||
et == SubscriptionEntityTask {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &ErrUnknownSubscriptionEntityType{EntityType: et}
|
||||
}
|
||||
|
||||
func getSubscription(s *xorm.Session, entityType SubscriptionEntityType, a web.Auth, entityID int64) (subscription *Subscription, err error) {
|
||||
u, is := a.(*user.User)
|
||||
if !is {
|
||||
return
|
||||
}
|
||||
|
||||
if err := entityType.validate(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
subscription = &Subscription{}
|
||||
|
||||
var cond builder.Cond
|
||||
|
|
|
@ -333,4 +333,13 @@ func TestSubscriptionGet(t *testing.T) {
|
|||
assert.Equal(t, int64(3), sub.ID)
|
||||
})
|
||||
})
|
||||
t.Run("invalid type", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
s := db.NewSession()
|
||||
defer s.Close()
|
||||
|
||||
_, err := getSubscription(s, 2342, u, 21)
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrUnknownSubscriptionEntityType(err))
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue