//This happens everytime the Umbraco Application starts
        protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication,
                                                   ApplicationContext applicationContext)
        {
            //Get the Umbraco Database context
            var ctx = applicationContext.DatabaseContext;
            var db  = new DatabaseSchemaHelper(ctx.Database, applicationContext.ProfilingLogger.Logger, ctx.SqlSyntax);

            //Check if the DB table does NOT exist
            if (!db.TableExist(FortressConstants.TableNames.FortressUser2FASettings))
            {
                //Create DB table - and set overwrite to false
                db.CreateTable <FortressUser2FASettings>(false);
            }

            /*   if (!db.TableExist(FortressConstants.TableNames.FortressLoginEvents))
             * {
             *     //Create DB table - and set overwrite to false
             *     db.CreateTable<FortressLoginEvent>(false);
             * }*/
            if (!db.TableExist(FortressConstants.TableNames.FortressSettings))
            {
                //Create DB table - and set overwrite to false
                db.CreateTable <FortressSettingEntry>(false);

                FortressSettingEntry.InsertInitialSettings(ctx.Database, ApplicationContext.Current.DatabaseContext.SqlSyntax);
            }

            /*  if (!db.TableExist(FortressConstants.TableNames.FortressFirewallEntry))
             * {
             *    //Create DB table - and set overwrite to false
             *    db.CreateTable<FortressFirewallEntry>(false);
             * }*/
            FortressContext.Initialize();
        }
Example #2
0
        private void AddSmsProviders(ref TreeNodeCollection nodes, string id, FormDataCollection queryStrings)
        {
            FortressContext.Initialize();
            var providers = FortressContext.GetAllSmsProviders();

            foreach (var provider in providers)
            {
                nodes.Add(CreateTreeNode(provider.Classname, id, queryStrings, provider.Name, "icon-notepad", false, MainRoute + "/TwoFactor/SMS-" + provider.Classname));
            }
        }
Example #3
0
        public SMSSettingsModel GetSMSSettings()
        {
            var settings  = SettingsCache.Instance;
            var viewModel = new SMSSettingsModel()
            {
                MessageFormat      = settings.SMS_MessageFormat,
                Enabled            = settings.SMS_Enabled,
                CurrentSMSProvider = settings.SMS_CurrentSMSProvider
            };

            viewModel.SMSProviders = FortressContext.GetAllSmsProviders();



            return(viewModel);
        }
Example #4
0
        public SMSProviderSettingsModel GetSMSProviderSettings(string ProviderName)
        {
            var type         = Type.GetType(ProviderName);
            var smsAttr      = type.GetCustomAttribute <SmsProviderAttribute>();
            var allProviders = FortressContext.GetAllSmsProviders();
            var thisProvider = allProviders.FirstOrDefault(x => x.Classname == ProviderName);
            var settings     = SettingsCache.Instance;
            var viewModel    = new SMSProviderSettingsModel()
            {
                Name      = smsAttr.Name,
                ClassName = thisProvider.Classname
            };

            viewModel.Settings = settings.GetPropertiesOnType(type);

            return(viewModel);
        }
Example #5
0
        Task IUserTokenProvider <BackOfficeIdentityUser, int> .NotifyAsync(string token, UserManager <BackOfficeIdentityUser, int> manager, BackOfficeIdentityUser user)
        {
            var db      = new FortressDatabase();
            var details = db.GetUserDetails(user.Id);

            var settings = db.GetSettingsFromDatabase();

            if (details == null || !details.IsValidated || details.Provider == "SMS")
            {
                details.CurrentCode          = token;
                details.CurrentCodeGenerated = DateTime.UtcNow;
                db.Update(details);
            }
            var SmsProvider = FortressContext.GetCurrentSmsProvider();

            SmsProvider.SendSms(details.Configuration, string.Format(settings.SMS_MessageFormat, token));
            return(Task.FromResult(true));
        }
        public HttpResponseMessage SetupSMS(string number)
        {
            var user    = SignInManager.GetVerifiedUserId();
            var details = CustomDatabase.GetUserDetails(user);

            if (details != null && details.IsValidated)
            {
                throw new UnauthorizedAccessException("This account has already setup SMS");
            }
            var isNew = details == null;

            details               = new FortressUser2FASettings();
            details.UserId        = user;
            details.Provider      = "SMS";
            details.Configuration = number;
            details.IsValidated   = false;

            lock (syncLock)
            {
                var code = _random.Next(999999).ToString();
                details.CurrentCode          = code;
                details.CurrentCodeGenerated = DateTime.UtcNow;
            }

            if (isNew)
            {
                CustomDatabase.Insert(details);
            }
            else
            {
                CustomDatabase.Update(details);
            }
            var settings    = CustomDatabase.GetSettingsFromDatabase();
            var SmsProvider = FortressContext.GetCurrentSmsProvider();

            SmsProvider.SendSms(details.Configuration, string.Format(settings.SMS_MessageFormat, details.CurrentCode));

            var response = Request.CreateResponse(HttpStatusCode.OK, new { token = "123456" });

            return(response);
        }