Skip to content

Commit f528a0a

Browse files
committed
AccessTokenByNameExists() return error too
1 parent 946c32e commit f528a0a

File tree

4 files changed

+23
-8
lines changed

4 files changed

+23
-8
lines changed

models/token.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,8 @@ func GetAccessTokenBySHA(token string) (*AccessToken, error) {
7878
}
7979

8080
// AccessTokenByNameExists checks if a token name has been used already by a user.
81-
func AccessTokenByNameExists(token *AccessToken) bool {
82-
exists, _ := x.Table("access_token").Where("name = ?", token.Name).And("uid = ?", token.UID).Exist()
83-
return exists
81+
func AccessTokenByNameExists(token *AccessToken) (bool, error) {
82+
return x.Table("access_token").Where("name = ?", token.Name).And("uid = ?", token.UID).Exist()
8483
}
8584

8685
// ListAccessTokens returns a list of access tokens belongs to given user.

models/token_test.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,18 @@ func TestAccessTokenByNameExists(t *testing.T) {
3838
}
3939

4040
// Check to make sure it doesn't exists already
41-
assert.False(t, AccessTokenByNameExists(token))
41+
exist, err := AccessTokenByNameExists(token)
42+
assert.NoError(t, err)
43+
assert.False(t, exist)
4244

4345
// Save it to the database
4446
assert.NoError(t, NewAccessToken(token))
4547
AssertExistsAndLoadBean(t, token)
4648

4749
// This token must be found by name in the DB now
48-
assert.True(t, AccessTokenByNameExists(token))
50+
exist, err = AccessTokenByNameExists(token)
51+
assert.NoError(t, err)
52+
assert.True(t, exist)
4953

5054
user4Token := &AccessToken{
5155
UID: 4,
@@ -54,7 +58,9 @@ func TestAccessTokenByNameExists(t *testing.T) {
5458

5559
// Name matches but different user ID, this shouldn't exists in the
5660
// database
57-
assert.False(t, AccessTokenByNameExists(user4Token))
61+
exist, err = AccessTokenByNameExists(user4Token)
62+
assert.NoError(t, err)
63+
assert.False(t, exist)
5864
}
5965

6066
func TestGetAccessTokenBySHA(t *testing.T) {

routers/api/v1/user/app.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,12 @@ func CreateAccessToken(ctx *context.APIContext, form api.CreateAccessTokenOption
9191
Name: form.Name,
9292
}
9393

94-
if models.AccessTokenByNameExists(t) {
94+
exist, err := models.AccessTokenByNameExists(t)
95+
if err != nil {
96+
ctx.InternalServerError(err)
97+
return
98+
}
99+
if exist {
95100
ctx.Error(http.StatusBadRequest, "AccessTokenByNameExists", errors.New("access token name has been used already"))
96101
return
97102
}

routers/user/setting/applications.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,12 @@ func ApplicationsPost(ctx *context.Context, form auth.NewAccessTokenForm) {
4444
Name: form.Name,
4545
}
4646

47-
if models.AccessTokenByNameExists(t) {
47+
exist, err := models.AccessTokenByNameExists(t)
48+
if err != nil {
49+
ctx.ServerError("AccessTokenByNameExists", err)
50+
return
51+
}
52+
if exist {
4853
ctx.Flash.Error(ctx.Tr("settings.generate_token_name_duplicate", t.Name))
4954
ctx.Redirect(setting.AppSubURL + "/user/settings/applications")
5055
return

0 commit comments

Comments
 (0)