internal ResponseObject BreakRootMapInheritance(GlymaSecurableObject securableObject) { ResponseObject response = new ResponseObject() { HasError = false }; try { GetSecurableContextIdResponse securableContextIdResponse = GetSecurableContextId(); if (!securableContextIdResponse.HasError) { int securableContextId = securableContextIdResponse.Result; SecurableObject obj = GetSecurableObject(securableContextId, securableObject.SecurableObjectUid); GlymaSecurableObjectContext securableObjectContext = new GlymaSecurableObjectContext(this, securableContextId, securableObject); if (obj == null) { obj = securableObjectContext.CreateSecurableObject(true); } if (!obj.BreaksInheritance) { securableObjectContext.SetSecurableObjectInheritance(true); } CopyGroupAssociationsToRootMap(securableObject); } } catch (Exception ex) { response.HasError = true; response.ErrorMessage = ex.Message; } return(response); }
/// <summary> /// Gets the security context id from the URL of the current site /// </summary> /// <param name="webUrl">The URL for the SP site</param> /// <returns>The SecurityContextId or -1 if it wasn't found (wrapped in a response object to indicate if it completed without error)</returns> public GetSecurableContextIdResponse GetSecurableContextId(string webUrl) { GetSecurableContextIdResponse result = new GetSecurableContextIdResponse() { HasError = false }; SecurityContextManager securityContext = new SecurityContextManager(webUrl); result = securityContext.GetSecurableContextId(); return(result); }
internal GetSecurityAssociationsResponse RestoreRootMapInheritance(GlymaSecurableObject securableObject) { GetSecurityAssociationsResponse response = new GetSecurityAssociationsResponse() { HasError = false }; try { GetSecurableContextIdResponse securableContextIdResponse = GetSecurableContextId(); if (!securableContextIdResponse.HasError) { int securableContextId = securableContextIdResponse.Result; SecurableObject obj = GetSecurableObject(securableContextId, securableObject.SecurableObjectUid); GlymaSecurableObjectContext securableObjectContext = new GlymaSecurableObjectContext(this, securableContextId, securableObject); if (obj == null) { obj = securableObjectContext.CreateSecurableObject(false); } if (obj.BreaksInheritance) { securableObjectContext.SetSecurableObjectInheritance(false); } RemoveRootMapGroupAssociations(securableObject); GlymaSecurableObject parentObject = new GlymaSecurableObject(); parentObject.SecurableParentUid = Guid.Empty; parentObject.SecurableObjectUid = securableObject.SecurableParentUid; GetAllSecurityGroupsResponse res = GetAllGlymaSecurityGroups(); if (!res.HasError) { IList <GlymaSecurityGroup> groups = ConversionUtility.ConvertDictToList(res.Result); response = GetSecurityAssociations(groups, parentObject); } else { response.HasError = true; response.ErrorMessage = "Failed returning the Glyma security groups. " + res.ErrorMessage; } } else { response.HasError = true; response.ErrorMessage = "Failed to restore root map inheritance. " + securableContextIdResponse.ErrorMessage; } } catch (Exception ex) { response.HasError = true; response.ErrorMessage = ex.Message; } return(response); }
internal GetSecurableContextIdResponse GetSecurableContextId() { GetSecurableContextIdResponse result = new GetSecurableContextIdResponse() { HasError = false }; if (this.CurrentUser.IsUserSecurityManager()) { int securableContextId = -1; try { using (SPSite site = new SPSite(WebUrl)) { SecurableContext securableContext = this.GetSecurableContext(); if (securableContext != null) { securableContextId = securableContext.SecurableContextId; } } } catch (Exception ex) { //If an error occurs getting the security context id result.HasError = true; result.ErrorMessage = ex.Message; } if (!result.HasError) { result.Result = securableContextId; } } else { result.HasError = true; result.ErrorMessage = "Access Denied. User does not have permissions to access this web service method."; } return(result); }