/// <summary> /// Enables Site Classifications for the target tenant /// </summary> /// <param name="accessToken">The OAuth accessToken for Microsoft Graph with Azure AD</param> /// <param name="siteClassificationsSettings">The site classifications settings to apply./param> public static void EnableSiteClassifications(string accessToken, SiteClassificationsSettings siteClassificationsSettings) { if (string.IsNullOrEmpty(accessToken)) { throw new ArgumentException("Specify a valid accesstoken", nameof(accessToken)); } if (siteClassificationsSettings == null) { throw new ArgumentException(nameof(siteClassificationsSettings)); } EnableSiteClassifications(accessToken, siteClassificationsSettings.Classifications, siteClassificationsSettings.DefaultClassification, siteClassificationsSettings.DefaultClassification); }
/// <summary> /// Updates Site Classifications settings for the target tenant /// </summary> /// <param name="accessToken">The OAuth accessToken for Microsoft Graph with Azure AD</param> /// <param name="siteClassificationsSettings">The site classifications settings to apply./param> public static void UpdateSiteClassificationsSettings(string accessToken, SiteClassificationsSettings siteClassificationsSettings) { if (string.IsNullOrEmpty(accessToken)) { throw new ArgumentException("Specify a valid accesstoken", nameof(accessToken)); } if (siteClassificationsSettings == null) { throw new ArgumentException("Specify a valid Site Classification Settings object", nameof(siteClassificationsSettings)); } UpdateSiteClassificationsSettings(accessToken, siteClassificationsSettings.Classifications, siteClassificationsSettings.DefaultClassification, siteClassificationsSettings.UsageGuidelinesUrl); }
/// <summary> /// Enables Site Classifications for the target tenant /// </summary> /// <param name="accessToken">The OAuth accessToken for Microsoft Graph with Azure AD</param> /// <returns>The list of Site Classification values</returns> public static SiteClassificationsSettings GetSiteClassificationsSettings(string accessToken) { if (string.IsNullOrEmpty(accessToken)) { throw new ArgumentException("Specify a valid accesstoken", nameof(accessToken)); } // GET https://graph.microsoft.com/beta/directorySettingTemplates string directorySettingsUrl = $"{GraphHttpClient.MicrosoftGraphBetaBaseUri}settings"; var directorySettingsJson = GraphHttpClient.MakeGetRequestForString(directorySettingsUrl, accessToken); var directorySettings = JsonConvert.DeserializeObject <DirectorySettingTemplates>(directorySettingsJson); // Retrieve the setinngs for "Group.Unified" var unifiedGroupSetting = directorySettings.Templates.FirstOrDefault(t => t.DisplayName == "Group.Unified"); if (unifiedGroupSetting != null) { var siteClassificationsSettings = new SiteClassificationsSettings(); var classificationList = unifiedGroupSetting.SettingValues.FirstOrDefault(v => v.Name == "ClassificationList"); if (classificationList != null) { siteClassificationsSettings.Classifications = classificationList.Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList(); } var guidanceUrl = unifiedGroupSetting.SettingValues.First(v => v.Name == "UsageGuidelinesUrl"); if (guidanceUrl != null) { siteClassificationsSettings.UsageGuidelinesUrl = guidanceUrl.Value; } var defaultClassification = unifiedGroupSetting.SettingValues.First(v => v.Name == "DefaultClassification"); if (defaultClassification != null) { siteClassificationsSettings.DefaultClassification = defaultClassification.Value; } return(siteClassificationsSettings); } else { throw new ApplicationException("Missing DirectorySettingTemplate for \"Group.Unified\""); } }
/// <summary> /// Updates Site Classifications settings for the target tenant /// </summary> /// <param name="tenant">The target tenant</param> /// <param name="accessToken">The OAuth accessToken for Microsoft Graph with Azure AD</param> /// <param name="siteClassificationsSettings">The site classifications settings to update.</param> public static void UpdateSiteClassificationsSettings(this Tenant tenant, string accessToken, SiteClassificationsSettings siteClassificationsSettings) { SiteClassificationsUtility.UpdateSiteClassificationsSettings(accessToken, siteClassificationsSettings); }