|
@@ -266,18 +266,74 @@ func (m *NetworkManager) HandleMemberAuthorization(w http.ResponseWriter, r *htt
|
|
|
|
|
|
//Handle Delete or Add IP for a member in a network
|
|
|
func (m *NetworkManager) HandleMemberIP(w http.ResponseWriter, r *http.Request) {
|
|
|
+ netid, err := utils.PostPara(r, "netid")
|
|
|
+ if err != nil {
|
|
|
+ utils.SendErrorResponse(w, "net id not set")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ memberid, err := utils.PostPara(r, "memid")
|
|
|
+ if err != nil {
|
|
|
+ utils.SendErrorResponse(w, "memid not set")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
opr, err := utils.PostPara(r, "opr")
|
|
|
if err != nil {
|
|
|
utils.SendErrorResponse(w, "opr not defined")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ targetip, _ := utils.PostPara(r, "ip")
|
|
|
+
|
|
|
+ memberInfo, err := m.getNetworkMemberInfo(netid, memberid)
|
|
|
+ if err != nil {
|
|
|
+ utils.SendErrorResponse(w, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
if opr == "add" {
|
|
|
+ if targetip == "" {
|
|
|
+ utils.SendErrorResponse(w, "ip not set")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if !isValidIPAddr(targetip) {
|
|
|
+ utils.SendErrorResponse(w, "ip address not valid")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ newIpList := append(memberInfo.IPAssignments, targetip)
|
|
|
+ err = m.setAssignedIps(netid, memberid, newIpList)
|
|
|
+ if err != nil {
|
|
|
+ utils.SendErrorResponse(w, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ utils.SendOK(w)
|
|
|
|
|
|
} else if opr == "del" {
|
|
|
+ if targetip == "" {
|
|
|
+ utils.SendErrorResponse(w, "ip not set")
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- } else if opr == "get" {
|
|
|
+ //Delete user ip from the list
|
|
|
+ newIpList := []string{}
|
|
|
+ for _, thisIp := range memberInfo.IPAssignments {
|
|
|
+ if thisIp != targetip {
|
|
|
+ newIpList = append(newIpList, thisIp)
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ err = m.setAssignedIps(netid, memberid, newIpList)
|
|
|
+ if err != nil {
|
|
|
+ utils.SendErrorResponse(w, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ utils.SendOK(w)
|
|
|
+ } else if opr == "get" {
|
|
|
+ js, _ := json.Marshal(memberInfo.IPAssignments)
|
|
|
+ utils.SendJSONResponse(w, string(js))
|
|
|
} else {
|
|
|
utils.SendErrorResponse(w, "unsupported opr type: "+opr)
|
|
|
}
|