Exemplo n.º 1
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req)
        {
            _logger.LogInformation("GetServerSettings");
            string tenant = req.Headers[Constants.HEADER_TENANT];

            if (String.IsNullOrWhiteSpace(tenant))
            {
                tenant = null;
            }
            TenantSettings tenantSettings;

            if (null == tenant)
            {
                tenantSettings = await _tenantRepository.GetFirstItemOrDefault(t => t.TenantKey == null);
            }
            else
            {
                tenantSettings = await _tenantRepository.GetFirstItemOrDefault(t => t.TenantKey.Equals(tenant));
            }
            if (tenantSettings.LocalAdministrationDisabled)
            {
                return(new BadRequestErrorMessageResult("Administration in MeetUpPlanner is disabled."));
            }
            ServerSettings serverSettings = await _cosmosRepository.GetServerSettings(tenant);

            string keyWord = req.Headers[Constants.HEADER_KEYWORD];

            if (String.IsNullOrEmpty(keyWord) || !serverSettings.AdminKeyword.Equals(keyWord))
            {
                return(new BadRequestErrorMessageResult("Keyword is missing or wrong"));
            }
            return(new OkObjectResult(serverSettings));
        }
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req)
        {
            _logger.LogInformation("WriteServerSettings");

            string tenant = req.Headers[Constants.HEADER_TENANT];

            if (String.IsNullOrWhiteSpace(tenant))
            {
                tenant = null;
            }
            TenantSettings tenantSettings;

            if (null == tenant)
            {
                tenantSettings = await _tenantRepository.GetFirstItemOrDefault(t => t.TenantKey == null);
            }
            else
            {
                tenantSettings = await _tenantRepository.GetFirstItemOrDefault(t => t.TenantKey.Equals(tenant));
            }
            if (tenantSettings.LocalAdministrationDisabled)
            {
                return(new BadRequestErrorMessageResult("Administration in MeetUpPlanner is disabled."));
            }

            ServerSettings serverSettings = await _serverSettingsRepository.GetServerSettings(tenant);

            string keyWord = req.Headers[Constants.HEADER_KEYWORD];

            if (String.IsNullOrEmpty(keyWord) || !serverSettings.AdminKeyword.Equals(keyWord))
            {
                return(new BadRequestErrorMessageResult("Keyword is missing or wrong"));
            }
            string         requestBody       = await new StreamReader(req.Body).ReadToEndAsync();
            ServerSettings newServerSettings = JsonConvert.DeserializeObject <ServerSettings>(requestBody);

            if (null != tenant)
            {
                newServerSettings.Tenant = tenant;
            }
            newServerSettings = await _serverSettingsRepository.WriteServerSettings(newServerSettings);

            return(new OkObjectResult(newServerSettings));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req)
        {
            string tenantUrl = req.Headers[Constants.HEADER_TENANT_URL];

            if (String.IsNullOrEmpty(tenantUrl))
            {
                return(new BadRequestErrorMessageResult($"GetTenantClientSettings: Header {Constants.HEADER_TENANT_URL}  is missing or wrong"));
            }
            _logger.LogInformation($"GetTenantClientSettings: {Constants.HEADER_TENANT_URL} = {tenantUrl}");
            TenantClientSettings tenantClientSettings = new TenantClientSettings();

            // First try to get tenant settings from database
            tenantClientSettings.Tenant = await _tenantRepository.GetFirstItemOrDefault(t => tenantUrl.StartsWith(t.PrimaryUrl));

            if (null != tenantClientSettings.Tenant)
            {
                _logger.LogInformation($"GetTenantClientSetting({tenantUrl}): Tenant Settings {tenantClientSettings.Tenant.TenantName} found.");
            }
            else
            {
                // If not in database get from static configuration table. This allows that MeetUpPlanner can run withour admin tool
                tenantClientSettings.Tenant = TenantConfig.GetTenant(tenantUrl);
            }

            string key    = Constants.KEY_CLIENT_SETTINGS;
            string tenant = tenantClientSettings.Tenant.TenantKey;

            if (null != tenant)
            {
                key += "-" + tenant;
            }
            tenantClientSettings.Client = await _cosmosRepository.GetItemByKey(key);

            if (null == tenantClientSettings.Client)
            {
                tenantClientSettings.Client = new ClientSettings()
                {
                    Title            = Constants.DEFAULT_TITLE,
                    FurtherInfoLink  = Constants.DEFAULT_LINK,
                    FurtherInfoTitle = Constants.DEFAULT_LINK_TITLE,
                    Disclaimer       = Constants.DEFAULT_DISCLAIMER,
                    GuestDisclaimer  = Constants.DEFAULT_GUEST_DISCLAIMER
                };
            }
            return(new OkObjectResult(tenantClientSettings));
        }