mirror of
https://github.com/cubefs/cubefs.git
synced 2026-08-02 02:00:56 +00:00
feature: change user information when create or delete volume
Signed-off-by: wenjia322 <buaa1214wwj@126.com>
This commit is contained in:
parent
3a2df30f36
commit
05b064c587
@ -490,6 +490,10 @@ func (m *Server) markDeleteVol(w http.ResponseWriter, r *http.Request) {
|
||||
sendErrReply(w, r, newErrHTTPReply(err))
|
||||
return
|
||||
}
|
||||
if err = m.user.deleteVolPolicy(name); err != nil {
|
||||
sendErrReply(w, r, newErrHTTPReply(err))
|
||||
return
|
||||
}
|
||||
msg = fmt.Sprintf("delete vol[%v] successfully,from[%v]", name, r.RemoteAddr)
|
||||
log.LogWarn(msg)
|
||||
sendOkReply(w, r, newSuccessHTTPReply(msg))
|
||||
@ -561,6 +565,11 @@ func (m *Server) createVol(w http.ResponseWriter, r *http.Request) {
|
||||
sendErrReply(w, r, newErrHTTPReply(err))
|
||||
return
|
||||
}
|
||||
// create user
|
||||
if err = m.createUserWithPolicy(owner, name); err != nil {
|
||||
sendErrReply(w, r, newErrHTTPReply(err))
|
||||
return
|
||||
}
|
||||
msg = fmt.Sprintf("create vol[%v] successfully, has allocate [%v] data partitions", name, len(vol.dataPartitions.partitions))
|
||||
sendOkReply(w, r, newSuccessHTTPReply(msg))
|
||||
}
|
||||
@ -1768,3 +1777,17 @@ func genRespMessage(data []byte, req *proto.APIAccessReq, ts int64, key []byte)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (m *Server) createUserWithPolicy(userID, volName string) (err error) {
|
||||
var akPolicy *proto.AKPolicy
|
||||
if akPolicy, err = m.user.createKey(userID); err != nil {
|
||||
return
|
||||
}
|
||||
policy := &proto.UserPolicy{
|
||||
OwnVol: []string{volName},
|
||||
}
|
||||
if _, err = m.user.addPolicy(akPolicy.AccessKey, policy); err != nil {
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@ -79,14 +79,6 @@ func (o *ObjectNode) createBucketHandler(w http.ResponseWriter, r *http.Request)
|
||||
return
|
||||
}
|
||||
//todo parse body
|
||||
policy := &proto.UserPolicy{
|
||||
OwnVol: []string{bucket},
|
||||
}
|
||||
if _, err = o.mc.UserAPI().AddPolicy(auth.accessKey, policy); err != nil {
|
||||
log.LogErrorf("add bucket[%v] policy for user[%v] error: err(%v)", bucket, auth.accessKey, err)
|
||||
_ = InternalError.ServeResponse(w, r)
|
||||
return
|
||||
}
|
||||
w.Header().Set("Location", o.region)
|
||||
return
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user