(client *http.Client, user *structs.User, orgID string)
| 118 | } |
| 119 | |
| 120 | func getOrgMembershipStateFromGitHub(client *http.Client, user *structs.User, orgID string) (isMember bool, rerr error) { |
| 121 | replacements := strings.NewReplacer(":org_id", orgID, ":username", user.Username) |
| 122 | orgMembershipResp, err := client.Get(replacements.Replace(cfg.GenOAuth.UserOrgURL)) |
| 123 | if err != nil { |
| 124 | log.Error(err) |
| 125 | return false, err |
| 126 | } |
| 127 | |
| 128 | if orgMembershipResp.StatusCode == 302 { |
| 129 | log.Debug("Need to check public membership") |
| 130 | location := orgMembershipResp.Header.Get("Location") |
| 131 | if location != "" { |
| 132 | orgMembershipResp, err = client.Get(location) |
| 133 | if err != nil { |
| 134 | log.Error(err) |
| 135 | } |
| 136 | } |
| 137 | } |
| 138 | |
| 139 | if orgMembershipResp.StatusCode == 204 { |
| 140 | log.Debug("getOrgMembershipStateFromGitHub isMember: true") |
| 141 | return true, nil |
| 142 | } else if orgMembershipResp.StatusCode == 404 { |
| 143 | log.Debug("getOrgMembershipStateFromGitHub isMember: false") |
| 144 | return false, nil |
| 145 | } else { |
| 146 | log.Errorf("getOrgMembershipStateFromGitHub: unexpected status code %d", orgMembershipResp.StatusCode) |
| 147 | return false, errors.New("Unexpected response status " + orgMembershipResp.Status) |
| 148 | } |
| 149 | } |
| 150 | |
| 151 | func getTeamMembershipStateFromGitHub(client *http.Client, user *structs.User, orgID string, team string) (isMember bool, rerr error) { |
| 152 | replacements := strings.NewReplacer(":org_id", orgID, ":team_slug", team, ":username", user.Username) |
no outgoing calls