コード例 #1
0
        public async Task <ActionResult> Details(string id)
        {
            var config = await SiteConfigRules.GetConfig(id);

            ViewBag.Templates = GetTemplates(config.InviteTemplateId);
            return(View(config));
        }
コード例 #2
0
        public async Task <ActionResult> Save(SiteConfig config)
        {
            ViewBag.Templates = GetTemplates(config.InviteTemplateId);

            if (ModelState.IsValid)
            {
                try
                {
                    config.ConfigAuthor = User.Identity.GetEmail();
                    config = await SiteConfigRules.SetNewConfig(config);

                    Settings.SiteConfigReady = true;
                    Settings.CurrSiteConfig  = config;

                    //refresh invitation settings
                    MailSender.MailFrom = Settings.CurrSiteConfig.SiteRedemptionSettings.InviterResponseEmailAddr;

                    return(RedirectToAction("Index"));
                }
                catch
                {
                    ViewBag.Error = "An error occured saving your config, please check the error logs and try again.";
                    return(View("Edit", config));
                }
            }
            return(View("Edit", config));
        }
コード例 #3
0
        public async Task <ActionResult> Edit(string id)
        {
            ViewBag.Operation = "Edit";
            var config = await SiteConfigRules.GetConfig(id);

            ViewBag.Templates = GetTemplates(config.InviteTemplateId);

            return(View(config));
        }
コード例 #4
0
        public async Task <ActionResult> TOS(string configId = null)
        {
            if (configId != null)
            {
                var config = await SiteConfigRules.GetConfig(configId);

                ViewBag.TOSContent = config.TOSDocument;
            }
            else
            {
                ViewBag.TOSContent = Settings.CurrSiteConfig.TOSDocument;
            }
            return(View());
        }
コード例 #5
0
        public async Task <ActionResult> Index()
        {
            var config = await SiteConfigRules.GetCurrConfig();

            if (config == null)
            {
                _templates = (await TemplateUtilities.InitializeDefaultTemplate(User.Identity.GetEmail())).ToList();
                var template = _templates.First();

                config = new SiteConfig
                {
                    InviteTemplateContent = template,
                    InviteTemplateId      = template.Id
                };
            }

            ViewBag.Templates = GetTemplates(config.InviteTemplateId);

            return(View("Edit", config));
        }
コード例 #6
0
        public async Task <ActionResult> List()
        {
            var configs = await SiteConfigRules.GetAllConfigs();

            return(View(configs));
        }
コード例 #7
0
        protected void Application_Start()
        {
            try
            {
                //DocDB config
                DocDBRepo.Settings.DocDBUri        = ConfigurationManager.AppSettings["DocDBUri"];
                DocDBRepo.Settings.DocDBAuthKey    = ConfigurationManager.AppSettings["DocDBAuthKey"];
                DocDBRepo.Settings.DocDBName       = ConfigurationManager.AppSettings["DocDBName"];
                DocDBRepo.Settings.DocDBCollection = ConfigurationManager.AppSettings["DocDBCollection"];

                var client = DocDBRepo.Initialize().Result;
                var s      = client.AuthKey;

                ControllerBuilder.Current.DefaultNamespaces.Add("B2BPortal.Controllers");
                AreaRegistration.RegisterAllAreas();
                GlobalConfiguration.Configure(WebApiConfig.Register);
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
                AntiForgeryConfig.UniqueClaimTypeIdentifier = "http://schemas.microsoft.com/identity/claims/objectidentifier";

                //Settings
                bool isConfig = false;
                var  task     = Task.Run(async() => {
                    isConfig = await SiteConfigRules.LoadCurrSiteConfig();
                });
                task.Wait();

                if (isConfig)
                {
                    //if new site, no config but invites are disabled until config is complete
                    MailSender.MailFrom = Settings.CurrSiteConfig.SiteRedemptionSettings.InviterResponseEmailAddr;
                }

                Settings.AADInstanceLocal = ConfigurationManager.AppSettings["ida:AADInstanceLocal"];
                Settings.AADInstanceMulti = ConfigurationManager.AppSettings["ida:AADInstanceMulti"];
                Settings.TenantID         = ConfigurationManager.AppSettings["ida:TenantId"];
                Settings.Tenant           = ConfigurationManager.AppSettings["ida:Tenant"];
                Settings.AppRootPath      = HttpRuntime.AppDomainAppPath;

                Settings.AppClientId_Admin     = ConfigurationManager.AppSettings["ida:ClientId_Admin"];
                Settings.AppClientSecret_Admin = ConfigurationManager.AppSettings["ida:ClientSecret_Admin"];
                //using same client password for token cache encryption
                AESEncryption.Password = Settings.AppClientSecret_Admin;

                Settings.AppClientId_Preauth     = ConfigurationManager.AppSettings["ida:ClientId_PreAuth"];
                Settings.AppClientSecret_Preauth = ConfigurationManager.AppSettings["ida:ClientSecret_PreAuth"];

                Settings.GraphApiVersion = ConfigurationManager.AppSettings["GraphApiVersion"];

                Settings.DefaultSubjectTemplateName = ConfigurationManager.AppSettings["DefaultSubjectTemplateName"];
                Settings.DefaultBodyTemplateName    = ConfigurationManager.AppSettings["DefaultBodyTemplateName"];
                Settings.InviterRoleNames           = (ConfigurationManager.AppSettings["InviterRoleNames"] as string).Split(',');
                Settings.AssignedInviterRole        = ConfigurationManager.AppSettings["AssignedInviterRole"];

                //SMTP config
                MailSender.MailEnabled    = (ConfigurationManager.AppSettings["MailEnabled"] == "1");
                MailSender.MailTemplate   = MailSender.GetTemplateContents(ConfigurationManager.AppSettings["MailTemplateName"]);
                MailSender.MailServer     = ConfigurationManager.AppSettings["MailServer"];
                MailSender.MailServerPort = Convert.ToInt32(ConfigurationManager.AppSettings["SMTPPort"]);
                MailSender.SMTPLogin      = ConfigurationManager.AppSettings["SMTPLogin"];
                MailSender.SMTPPassword   = ConfigurationManager.AppSettings["SMTPPassword"];

                Settings.UseSMTP = (!string.IsNullOrEmpty(MailSender.MailServer));
                StorageRepo.StorageConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];

                /*
                 * TODO: Prefetching the app token here because initializing this library during admin
                 * authentication is timing out/failing.
                 * don't know if this is due to the api call or spinning up this code
                 * see AdalUtil.CallGraph...
                 */
                AdalUtil.AuthenticateApp();

                AdalUtil.GetTenantBranding();
                if (Settings.Branding.TileLogo.Image == null)
                {
                    //assign default logo
                    var imgPath = Path.Combine(Settings.AppRootPath, "Content\\Images\\AADB2BTile.png");
                    var img     = File.ReadAllBytes(imgPath);
                    Settings.Branding.TileLogo.Image = img;
                }
                MailSender.Logo = Settings.Branding.TileLogo.Image;
            }
            catch (Exception ex)
            {
                Logging.WriteToAppLog("Error during site initialization", System.Diagnostics.EventLogEntryType.Error, ex);
                throw;
            }
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: kamil1102/b2bportal
        private static void Setup()
        {
            try
            {
                //DocDB config
                DocDBRepo.Settings.DocDBUri        = ConfigurationManager.AppSettings["DocDBUri"];
                DocDBRepo.Settings.DocDBAuthKey    = ConfigurationManager.AppSettings["DocDBAuthKey"];
                DocDBRepo.Settings.DocDBName       = ConfigurationManager.AppSettings["DocDBName"];
                DocDBRepo.Settings.DocDBCollection = ConfigurationManager.AppSettings["DocDBCollection"];

                var client = DocDBRepo.Initialize().Result;
                var s      = client.AuthKey;

                bool isConfig = false;
                var  task     = Task.Run(async() => {
                    isConfig = await SiteConfigRules.LoadCurrSiteConfig();
                });
                task.Wait();

                if (isConfig)
                {
                    //if new site, no config but invites are disabled until config is complete
                    Settings.CurrSiteConfig.SiteRedemptionSettings = Settings.CurrSiteConfig.SiteRedemptionSettings;
                    Settings.CurrSiteConfig.InvitingOrg            = Settings.CurrSiteConfig.InvitingOrg;
                    MailSender.MailFrom = Settings.CurrSiteConfig.SiteRedemptionSettings.InviterResponseEmailAddr;
                }

                Settings.AppRootPath = Environment.CurrentDirectory;

                Settings.AADInstanceLocal = ConfigurationManager.AppSettings["ida:AADInstanceLocal"];
                Settings.AADInstanceMulti = ConfigurationManager.AppSettings["ida:AADInstanceMulti"];
                Settings.TenantID         = ConfigurationManager.AppSettings["ida:TenantId"];
                Settings.Tenant           = ConfigurationManager.AppSettings["ida:Tenant"];

                Settings.AppClientId_Admin     = ConfigurationManager.AppSettings["ida:ClientId_Admin"];
                Settings.AppClientSecret_Admin = ConfigurationManager.AppSettings["ida:ClientSecret_Admin"];
                //using same client password for token cache encryption
                AESEncryption.Password = Settings.AppClientSecret_Admin;

                Settings.AppClientId_Preauth     = ConfigurationManager.AppSettings["ida:ClientId_PreAuth"];
                Settings.AppClientSecret_Preauth = ConfigurationManager.AppSettings["ida:ClientSecret_PreAuth"];

                Settings.GraphApiVersion = ConfigurationManager.AppSettings["GraphApiVersion"];

                Settings.InviterRoleNames    = (ConfigurationManager.AppSettings["InviterRoleNames"] as string).Split(',');
                Settings.AssignedInviterRole = ConfigurationManager.AppSettings["AssignedInviterRole"];

                //these are the mail content templates
                Settings.DefaultSubjectTemplateName = ConfigurationManager.AppSettings["DefaultSubjectTemplateName"];
                Settings.DefaultBodyTemplateName    = ConfigurationManager.AppSettings["DefaultBodyTemplateName"];

                //SMTP config
                MailSender.MailEnabled = (ConfigurationManager.AppSettings["MailEnabled"] == "1");
                //this is the mail formatting template - subject and body are injected into this
                MailSender.MailTemplate   = MailSender.GetTemplateContents(ConfigurationManager.AppSettings["MailTemplateName"]);
                MailSender.MailServer     = ConfigurationManager.AppSettings["MailServer"];
                MailSender.MailServerPort = Convert.ToInt32(ConfigurationManager.AppSettings["SMTPPort"]);
                MailSender.SMTPLogin      = ConfigurationManager.AppSettings["SMTPLogin"];
                MailSender.SMTPPassword   = ConfigurationManager.AppSettings["SMTPPassword"];

                StorageRepo.StorageConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];
                Settings.UseSMTP = (!string.IsNullOrEmpty(MailSender.MailServer));

                /*
                 * TODO: Prefetching the app token here because initializing this library during admin
                 * authentication is timing out/failing.
                 * don't know if this is due to the api call or spinning up this code
                 * see AdalUtil.CallGraph...
                 */
                AdalUtil.AuthenticateApp();
                AdalUtil.GetTenantBranding();

                if (Settings.Branding.TileLogo.Image == null)
                {
                    //assign default logo
                    var imgPath = Path.Combine(Settings.AppRootPath, "Content\\Images\\AADB2BTile.png");
                    var img     = File.ReadAllBytes(imgPath);
                    Settings.Branding.TileLogo.Image = img;
                }
                MailSender.Logo = Settings.Branding.TileLogo.Image;
            }
            catch (Exception ex)
            {
                Logging.WriteToAppLog("Error during site initialization", System.Diagnostics.EventLogEntryType.Error, ex);
                throw;
            }
        }