mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-18 08:16:39 +00:00
use const and do array copy
This commit is contained in:
@@ -11,6 +11,11 @@ import (
|
||||
"github.com/rs/xid"
|
||||
)
|
||||
|
||||
const (
|
||||
PATPrefix = "nbp_"
|
||||
secretLength = 30
|
||||
)
|
||||
|
||||
// PersonalAccessToken holds all information about a PAT including a hashed version of it for verification
|
||||
type PersonalAccessToken struct {
|
||||
ID string
|
||||
@@ -43,7 +48,7 @@ func CreateNewPAT(description string, expirationInDays int, createdBy string) (*
|
||||
}
|
||||
|
||||
func generateNewToken() (string, string, error) {
|
||||
secret, err := b.Random(30)
|
||||
secret, err := b.Random(secretLength)
|
||||
if err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
@@ -51,7 +56,7 @@ func generateNewToken() (string, string, error) {
|
||||
checksum := crc32.ChecksumIEEE([]byte(secret))
|
||||
encodedChecksum := base62.Encode(checksum)
|
||||
paddedChecksum := fmt.Sprintf("%06s", encodedChecksum)
|
||||
plainToken := "nbp_" + secret + paddedChecksum
|
||||
plainToken := PATPrefix + secret + paddedChecksum
|
||||
hashedToken := sha256.Sum256([]byte(plainToken))
|
||||
return string(hashedToken[:]), plainToken, nil
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ func TestPAT_GenerateToken_Hashing(t *testing.T) {
|
||||
func TestPAT_GenerateToken_Prefix(t *testing.T) {
|
||||
_, plainToken, _ := generateNewToken()
|
||||
fourCharPrefix := plainToken[:4]
|
||||
assert.Equal(t, "nbp_", fourCharPrefix)
|
||||
assert.Equal(t, PATPrefix, fourCharPrefix)
|
||||
}
|
||||
|
||||
func TestPAT_GenerateToken_Checksum(t *testing.T) {
|
||||
|
||||
@@ -94,11 +94,13 @@ func (u *User) toUserInfo(userData *idp.UserData) (*UserInfo, error) {
|
||||
func (u *User) Copy() *User {
|
||||
autoGroups := make([]string, 0)
|
||||
autoGroups = append(autoGroups, u.AutoGroups...)
|
||||
pats := make([]PersonalAccessToken, 0)
|
||||
pats = append(pats, u.PATs...)
|
||||
return &User{
|
||||
Id: u.Id,
|
||||
Role: u.Role,
|
||||
AutoGroups: autoGroups,
|
||||
PATs: u.PATs,
|
||||
PATs: pats,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user