mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
[PLT-7793] Add /users/tokens/search endpoint (#8088)
* Add /users/tokens/search endpoint + tests * Fix check-style * Unnecessary deletion
This commit is contained in:
committed by
Joram Wilander
parent
1d9efd0e39
commit
b1d13a2d89
@@ -1092,6 +1092,16 @@ func (c *Client4) RevokeUserAccessToken(tokenId string) (bool, *Response) {
|
||||
}
|
||||
}
|
||||
|
||||
// SearchUserAccessTokens returns user access tokens matching the provided search term.
|
||||
func (c *Client4) SearchUserAccessTokens(search *UserAccessTokenSearch) ([]*UserAccessToken, *Response) {
|
||||
if r, err := c.DoApiPost(c.GetUsersRoute()+"/tokens/search", search.ToJson()); err != nil {
|
||||
return nil, BuildErrorResponse(r, err)
|
||||
} else {
|
||||
defer closeBody(r)
|
||||
return UserAccessTokenListFromJson(r.Body), BuildResponse(r)
|
||||
}
|
||||
}
|
||||
|
||||
// DisableUserAccessToken will disable a user access token by id. Must have the
|
||||
// 'revoke_user_access_token' permission and if disabling for another user, must have the
|
||||
// 'edit_other_users' permission.
|
||||
|
||||
35
model/user_access_token_search.go
Normal file
35
model/user_access_token_search.go
Normal file
@@ -0,0 +1,35 @@
|
||||
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io"
|
||||
)
|
||||
|
||||
type UserAccessTokenSearch struct {
|
||||
Term string `json:"term"`
|
||||
}
|
||||
|
||||
// ToJson convert a UserAccessTokenSearch to json string
|
||||
func (c *UserAccessTokenSearch) ToJson() string {
|
||||
b, err := json.Marshal(c)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
return string(b)
|
||||
}
|
||||
|
||||
// UserAccessTokenSearchJson decodes the input and returns a UserAccessTokenSearch
|
||||
func UserAccessTokenSearchFromJson(data io.Reader) *UserAccessTokenSearch {
|
||||
decoder := json.NewDecoder(data)
|
||||
var cs UserAccessTokenSearch
|
||||
err := decoder.Decode(&cs)
|
||||
if err == nil {
|
||||
return &cs
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
19
model/user_access_token_search_test.go
Normal file
19
model/user_access_token_search_test.go
Normal file
@@ -0,0 +1,19 @@
|
||||
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestUserAccessTokenSearchJson(t *testing.T) {
|
||||
userAccessTokenSearch := UserAccessTokenSearch{Term: NewId()}
|
||||
json := userAccessTokenSearch.ToJson()
|
||||
ruserAccessTokenSearch := UserAccessTokenSearchFromJson(strings.NewReader(json))
|
||||
|
||||
if userAccessTokenSearch.Term != ruserAccessTokenSearch.Term {
|
||||
t.Fatal("Terms do not match")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user