mirror of https://github.com/gophish/gophish
Updated API (/api/groups)
parent
4b97a88238
commit
cfd4e23b2b
|
@ -137,19 +137,12 @@ RESULT { "name" : "Test Group",
|
|||
func API_Groups(w http.ResponseWriter, r *http.Request) {
|
||||
switch {
|
||||
case r.Method == "GET":
|
||||
gs := []models.Group{}
|
||||
_, err := db.Conn.Select(&gs, "SELECT g.id, g.name, g.modified_date FROM groups g, users u, user_groups ug WHERE ug.uid=u.id AND ug.gid=g.id AND u.api_key=?", ctx.Get(r, "api_key"))
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
for i, _ := range gs {
|
||||
_, err := db.Conn.Select(&gs[i].Targets, "SELECT t.id, t.email FROM targets t, group_targets gt WHERE gt.gid=? AND gt.tid=t.id", gs[i].Id)
|
||||
if checkError(err, w, "Error looking up groups") {
|
||||
gs, err := db.GetGroups(ctx.Get(r, "api_key"))
|
||||
if checkError(err, w, "Cannot retrieve group information") {
|
||||
return
|
||||
}
|
||||
}
|
||||
gj, err := json.MarshalIndent(gs, "", " ")
|
||||
if checkError(err, w, "Error looking up groups") {
|
||||
if checkError(err, w, "Error marshaling group information") {
|
||||
return
|
||||
}
|
||||
writeJSON(w, gj)
|
||||
|
|
16
db/db.go
16
db/db.go
|
@ -128,3 +128,19 @@ func PutCampaign(c *models.Campaign) error {
|
|||
_, err := Conn.Update(c)
|
||||
return err
|
||||
}
|
||||
|
||||
func GetGroups(key interface{}) ([]models.Group, error) {
|
||||
gs := []models.Group{}
|
||||
_, err := Conn.Select(&gs, "SELECT g.id, g.name, g.modified_date FROM groups g, user_groups ug, users u WHERE ug.uid=u.id AND ug.gid=g.id AND u.api_key=?", key)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return gs, err
|
||||
}
|
||||
for i, _ := range gs {
|
||||
_, err := Conn.Select(&gs[i].Targets, "SELECT t.id, t.email FROM targets t, group_targets gt WHERE gt.gid=? AND gt.tid=t.id", gs[i].Id)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
}
|
||||
return gs, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue