cubefs
1package keystore2
3import (4"encoding/json"5"fmt"6"regexp"7
8"github.com/cubefs/cubefs/util/caps"9)
10
11type AccessKeyInfo struct {12AccessKey string `json:"access_key"`13ID string `json:"id"`14}
15
16type AccessKeyCaps struct {17AccessKey string `json:"access_key"`18SecretKey string `json:"secret_key"`19Caps []byte `json:"caps"`20ID string `json:"user_id"`21}
22
23func (u *AccessKeyCaps) IsValidCaps() (err error) {24cap := new(caps.Caps)25if err = cap.Init(u.Caps); err != nil {26err = fmt.Errorf("Invalid caps [%s] %s", u.Caps, err.Error())27}28return29}
30
31func (u *AccessKeyCaps) IsValidAK() (err error) {32re := regexp.MustCompile("^[A-Za-z0-9]{16}$")33if !re.MatchString(u.AccessKey) {34err = fmt.Errorf("invalid AccessKey [%s]", u.AccessKey)35return36}37return38}
39
40func (u *AccessKeyCaps) DumpJSONStr() (r string, err error) {41dumpInfo := struct {42AccessKey string `json:"access_key"`43SecretKey string `json:"secret_key"`44Caps string `json:"caps"`45ID string `json:"id"`46}{47u.AccessKey,48u.SecretKey,49string(u.Caps),50u.ID,51}52data, err := json.MarshalIndent(dumpInfo, "", " ")53if err != nil {54return55}56r = string(data)57return58}
59