MCPcopy Create free account
hub / github.com/dearcode/candy / register

Method register

store/user.go:53–105  ·  view source on GitHub ↗
(user, passwd string, id int64)

Source from the content-addressed store, hash-verified

51}
52
53func (u *userDB) register(user, passwd string, id int64) error {
54 log.Debugf("user:%v passwd:%v", user, passwd)
55 txn, err := u.db.OpenTransaction()
56 if err != nil {
57 txn.Discard()
58 return errors.Trace(err)
59 }
60
61 log.Debugf("open transaction finished")
62 v, err := txn.Get([]byte(user), nil)
63 if err != nil && err != leveldb.ErrNotFound {
64 txn.Discard()
65 return errors.Trace(err)
66 }
67
68 log.Debugf("check whether the user exist")
69
70 if len(v) != 0 {
71 txn.Discard()
72 return errors.Errorf("user:%s exist info:%s", user, string(v))
73 }
74
75 buf, err := json.Marshal(account{Name: user, Password: passwd, ID: id})
76 if err != nil {
77 txn.Discard()
78 return errors.Trace(err)
79 }
80
81 if err = txn.Put([]byte(user), buf, nil); err != nil {
82 txn.Discard()
83 return errors.Trace(err)
84 }
85
86 //创建用户的同时增加userid+@+username的编码key,提供通过userid查找用户数据
87 buf, err = json.Marshal(user)
88 if err != nil {
89 txn.Discard()
90 return errors.Trace(err)
91 }
92
93 if err = txn.Put(UserUnionKey(id), buf, nil); err != nil {
94 txn.Discard()
95 return errors.Trace(err)
96 }
97
98 if err = txn.Commit(); err != nil {
99 txn.Discard()
100 return errors.Trace(err)
101 }
102
103 log.Debugf("user:%s, passwd:%s, id:%d", user, passwd, id)
104 return nil
105}
106
107func (u *userDB) findUser(user string) ([]string, error) {
108 var users []string

Callers 2

RegisterMethod · 0.45
TestUserDBFunction · 0.45

Calls 1

UserUnionKeyFunction · 0.85

Tested by 1

TestUserDBFunction · 0.36