use const and do array copy

This commit is contained in:
Pascal Fischer
2023-03-08 11:54:10 +01:00
parent 2b1965c941
commit b4bb5c6bb8
5 changed files with 17 additions and 4 deletions

View File

@@ -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
}

View File

@@ -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) {

View File

@@ -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,
}
}