Пример #1
0
        /// <summary>
        /// Configures the kastra options.
        /// </summary>
        /// <param name="services">Services.</param>
        public static async Task ConfigureKastraOptions(this IServiceCollection services)
        {
            // Get site configuration
            using ServiceProvider serviceProvider = services.BuildServiceProvider();
            IParameterManager     parameterManager  = serviceProvider.GetService <IParameterManager>();
            SiteConfigurationInfo siteConfiguration = await parameterManager.GetSiteConfigurationAsync();

            // Set configuration in identity options
            services.Configure <IdentityOptions>(options =>
            {
                options.SignIn.RequireConfirmedEmail = siteConfiguration.RequireConfirmedEmail;

                options.User.RequireUniqueEmail        = siteConfiguration.UserRequireUniqueEmail;
                options.User.AllowedUserNameCharacters = siteConfiguration.UserAllowedUserNameCharacters;

                options.Password.RequireDigit           = siteConfiguration.PasswordRequireDigit;
                options.Password.RequiredLength         = siteConfiguration.PasswordRequiredLength;
                options.Password.RequireLowercase       = siteConfiguration.PasswordRequireLowercase;
                options.Password.RequireNonAlphanumeric = siteConfiguration.PasswordRequireNonAlphanumeric;
                options.Password.RequireUppercase       = siteConfiguration.PasswordRequireUppercase;
                options.Password.RequiredUniqueChars    = siteConfiguration.PasswordRequiredUniqueChars;
            });

            // Set cookie configuration
            services.Configure <CookiePolicyOptions>(options =>
            {
                options.CheckConsentNeeded    = context => siteConfiguration.CheckConsentNeeded;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });
        }
Пример #2
0
        public async Task <IActionResult> Index(string pageKeyName, int moduleId, string moduleControl, string moduleAction)
        {
            if (string.IsNullOrEmpty(pageKeyName))
            {
                return(RedirectToAction("Index", "Home"));
            }

            PageInfo page = await _viewManager.GetPageByKeyAsync(pageKeyName, true);

            if (page is null)
            {
                return(NotFound());
            }

            TemplateInfo template = page.PageTemplate;

            //Get site parameters
            SiteConfigurationInfo siteConfiguration = await _parameterManager.GetSiteConfigurationAsync();

            // Set page title
            ViewBag.Title = string.IsNullOrEmpty(page.Title) ? siteConfiguration.Title : page.Title;

            // Set theme
            ViewBag.Theme = siteConfiguration.Theme ?? SiteConfiguration.DefaultTheme;

            // Set page SEO
            ViewBag.MetaDescription = string.IsNullOrEmpty(page.MetaDescription) ? siteConfiguration.Description : page.MetaDescription;
            ViewBag.MetaKeywords    = page.MetaKeywords;
            ViewBag.MetaRobot       = page.MetaRobot;

            ViewEngine viewEngine = new ViewEngine(page, _cacheEngine);

            // Create template model
            object model = viewEngine.CreateView(moduleControl, moduleId, moduleAction);

            // Home page style
            if (pageKeyName.ToLower() == "home")
            {
                ViewBag.IsHome = true;
            }

            return(View(template.KeyName, model));
        }
Пример #3
0
        public EmailSender(IParameterManager parameterManager)
        {
            // Get site configuration
            _siteConfiguration = parameterManager.GetSiteConfigurationAsync().Result;

            // Set smtp client
            _smtpClient = new SmtpClient
            {
                Host      = !String.IsNullOrEmpty(_siteConfiguration.SmtpHost) ? _siteConfiguration.SmtpHost : "localhost",
                Port      = _siteConfiguration.SmtpPort > 0 ? _siteConfiguration.SmtpPort : 587,
                EnableSsl = _siteConfiguration.SmtpEnableSsl
            };

            if (!String.IsNullOrEmpty(_siteConfiguration.SmtpCredentialsUser))
            {
                _smtpClient.Credentials = new NetworkCredential(_siteConfiguration.SmtpCredentialsUser,
                                                                _siteConfiguration.SmtpCredentialsPassword);
            }
        }