private static void GetForUser(HttpContext context, UserSecurityContext ctx) { IUserAffiliationProvider prov = UserAffiliationManager.Instance.GetProvider(ctx); if (prov != null) { IEnumerable <CompoundIdentity> ids = null; ids = prov.GetIds(ctx.User); if (ids != null) { JArray orgs = JsonUtils.ToJson(ids); if (orgs != null) { RestUtils.Push(context.Response, JsonOpStatus.Ok, orgs); return; } } else { RestUtils.Push(context.Response, JsonOpStatus.Ok, "[]"); return; } } RestUtils.Push(context.Response, JsonOpStatus.Failed); }
private static void Get(HttpContext context, UserSecurityContext ctx, JObject body) { IUserAffiliationProvider prov = UserAffiliationManager.Instance.GetProvider(ctx); if (prov != null) { CompoundIdentity orgId = JsonUtils.ToId(body[JsonUtils.OwnerId]); if (orgId == null) { Guid userId = JsonUtils.ToGuid(body[userId]); IEnumerable <CompoundIdentity> ids = null; if (Guid.Empty.Equals(userId) || userId.Equals(ctx.Identity)) { //this is for self ids = prov.GetIds(ctx.User); } else { //this is for other IIdentityProvider idp = IdentityManager.Instance.GetProvider(ctx); if (idp != null) { IUserIdentity uid = idp.Get(userId); //make sure this is a valid user if (uid != null) { ids = prov.GetIds(uid); } } } if (ids != null) { JArray orgs = JsonUtils.ToJson(ids); if (orgs != null) { RestUtils.Push(context.Response, JsonOpStatus.Ok, orgs); return; } } } else //we're searching by org rather than by user { IOrganizationProvider oProv = OrganizationManager.Instance.GetOrganizationProvider(ctx); if (oProv != null) { Organization org = oProv.Get(orgId); if (org != null) { JArray uids = JsonUtils.ToJson(prov.GetIds(org)); if (uids != null) { RestUtils.Push(context.Response, JsonOpStatus.Ok, uids); return; } } } } RestUtils.Push(context.Response, JsonOpStatus.Failed); } }
private static void Delete(HttpContext context, UserSecurityContext ctx, JObject body) { IUserAffiliationProvider prov = UserAffiliationManager.Instance.GetProvider(ctx); if (prov != null) { HashSet <CompoundIdentity> orgId = JsonUtils.ToIds(body[JsonUtils.OwnerId]); HashSet <Guid> userids = JsonUtils.ToGuids(body[userId]); if (orgId != null && userids != null && orgId.Count > 0 && userids.Count > 0) { if (orgId.Count == 1 || userids.Count == 1) //we can't have many of both { IEnumerable <Organization> orgs = Fill(orgId, ctx); if (orgs != null) { IEnumerable <IUserIdentity> users = Fill(userids, ctx); if (users != null) { if (orgId.Count > 1) //many orgs, 1 user { foreach (IUserIdentity curUser in users) { if (prov.Remove(curUser, orgs)) { RestUtils.Push(context.Response, JsonOpStatus.Ok); } else { RestUtils.Push(context.Response, JsonOpStatus.Failed); } return; } } else if (userids.Count > 1) //many users, 1 org { foreach (Organization curOrg in orgs) { if (prov.Remove(users, curOrg)) { RestUtils.Push(context.Response, JsonOpStatus.Ok); } else { RestUtils.Push(context.Response, JsonOpStatus.Failed); } return; } } else //1 of each { foreach (IUserIdentity curUser in users) { foreach (Organization curOrg in orgs) { if (prov.Remove(curUser, curOrg)) { RestUtils.Push(context.Response, JsonOpStatus.Ok); } else { RestUtils.Push(context.Response, JsonOpStatus.Failed); } return; } } } } } } } } RestUtils.Push(context.Response, JsonOpStatus.Failed); }