internal Yield GetSiteSettings(DreamContext context, DreamMessage request, Result <DreamMessage> response) { var givenKey = context.GetParam("apikey", null); var includes = context.GetParam("include", ""); //If apikey is not given for a request, dont return hidden entries var validMasterKey = MasterApiKey.EqualsInvariant(givenKey); var retrieve = new SiteSettingsRetrievalSettings { IncludeHidden = validMasterKey, IncludeAnonymousUser = includes.Contains(UserBL.ANON_USERNAME), IncludeLicense = (validMasterKey || PermissionsBL.IsUserAllowed(DekiContext.Current.User, Permissions.ADMIN)) && includes.Contains(ConfigBL.LICENSE), }; var doc = ConfigBL.GetInstanceSettingsAsDoc(retrieve); // check if a custom logo was uploaded; if yes, update the config document. // This is being done outside of caching since URIs to the api should be computed for every request if (doc[ConfigBL.UI_LOGO_UPLOADED].AsBool ?? false) { doc.InsertValueAt(ConfigBL.UI_LOGO_URI, DekiContext.Current.ApiUri.At("site", "logo.png").ToString()); } response.Return(DreamMessage.Ok(doc)); yield break; }
internal Yield GetSiteSettings(DreamContext context, DreamMessage request, Result<DreamMessage> response) { var givenKey = context.GetParam("apikey", null); var includes = context.GetParam("include", ""); //If apikey is not given for a request, dont return hidden entries var validMasterKey = MasterApiKey.EqualsInvariant(givenKey); var retrieve = new SiteSettingsRetrievalSettings { IncludeHidden = validMasterKey, IncludeAnonymousUser = includes.Contains(UserBL.ANON_USERNAME), IncludeLicense = (validMasterKey || PermissionsBL.IsUserAllowed(DekiContext.Current.User, Permissions.ADMIN)) && includes.Contains(ConfigBL.LICENSE), }; var doc = ConfigBL.GetInstanceSettingsAsDoc(retrieve); // check if a custom logo was uploaded; if yes, update the config document. // This is being done outside of caching since URIs to the api should be computed for every request if(doc[ConfigBL.UI_LOGO_UPLOADED].AsBool ?? false) { doc.InsertValueAt(ConfigBL.UI_LOGO_URI, DekiContext.Current.ApiUri.At("site", "logo.png").ToString()); } response.Return(DreamMessage.Ok(doc)); yield break; }