public GetIsUserGlymaSecurityManagerResponse GetIsUserGlymaSecurityManager(string webUrl) { GetIsUserGlymaSecurityManagerResponse response = new GetIsUserGlymaSecurityManagerResponse() { HasError = false }; bool result = false; try { SecurityContextManager contextManager = new SecurityContextManager(webUrl); result = contextManager.CurrentUser.IsUserSecurityManager(); } catch (Exception ex) { response.HasError = true; response.ErrorMessage = "Failed to discover if the current user is a Glyma Security Manager. " + ex.Message; } if (!response.HasError) { response.Result = result; } return(response); }
/// <summary> /// Gets the highest permission level that a user has /// </summary> /// <param name="webUrl"></param> /// <returns></returns> public GetPermissionLevelResponse GetUsersPermissionLevel(string webUrl) { GetPermissionLevelResponse result = new GetPermissionLevelResponse() { HasError = false }; GlymaPermissionLevel permissionLevel = GlymaPermissionLevel.None; GetIsUserGlymaSecurityManagerResponse isSecurityManager = GetIsUserGlymaSecurityManager(webUrl); if (!isSecurityManager.HasError) { if (isSecurityManager.Result) { permissionLevel = GlymaPermissionLevel.GlymaSecurityManager; result.Result = permissionLevel; } else { try { SecurityContextManager context = new SecurityContextManager(webUrl); IGlymaPermission permission = context.CurrentUser.GetHighestPermissionLevel(); permissionLevel = permission.PermissionLevel; result.Result = permissionLevel; } catch (Exception e) { result.HasError = true; result.ErrorMessage = e.Message; } } } else { result.HasError = true; result.ErrorMessage = isSecurityManager.ErrorMessage; } return(result); }