예제 #1
0
        public void IsAdminExpiredTest()
        {
            // Beta account should never be expired
            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(this.userid);

            Assert.That(pay.IsExpired(), Is.False);
        }
예제 #2
0
        public void IsExpiredInvalidUserIdTest()
        {
            // Beta account should never be expired except for invalid user accounts
            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(-1);

            Assert.That(pay.IsExpired(), Is.True);
        }
예제 #3
0
        public Setup(int userid, string username)
        {
            var details = new Majorsilence.Vpn.Logic.Accounts.ServerDetails();

            this.ServerInfo = details.Info;

            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(userid);

            ActiveAccount = !pay.IsExpired();


            var userServerDetails = new Majorsilence.Vpn.Logic.Accounts.UserServerDetails(userid);

            if (userServerDetails.Info == null)
            {
                CurrentServer = "none";
                PptpIP        = "none";
                PptpPassword  = "******";
            }
            else
            {
                CurrentServer = userServerDetails.Info.VpnServerName + " - Region: " + userServerDetails.Info.RegionName;
                PptpIP        = userServerDetails.Info.Address;
                PptpPassword  = userServerDetails.Info.PptpPassword;
            }

            Username = username;
        }
예제 #4
0
        public void PaymentWithInvalidUserIdTest()
        {
            var           createDate = DateTime.UtcNow;
            const decimal payment    = 56.76m;
            var           paycode    = Majorsilence.Vpn.Logic.Helpers.SiteInfo.MonthlyPaymentId;

            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(-1);

            Assert.Throws <Majorsilence.Vpn.Logic.Exceptions.InvalidUserIdException>(() => pay.SaveUserPayment(payment, createDate, paycode));
        }
예제 #5
0
        public void IsAdminExpiredOldPaymentsTest()
        {
            var createDate = DateTime.UtcNow.AddMonths(-3);
            var payment    = 56.76m;
            var paycode    = Majorsilence.Vpn.Logic.Helpers.SiteInfo.MonthlyPaymentId;

            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(this.userid);

            pay.SaveUserPayment(payment, createDate, paycode);


            Assert.That(pay.IsExpired(), Is.False);
        }
예제 #6
0
        public void IsExpiredNewPaymentsTest()
        {
            // Beta account should never be expired
            var createDate = DateTime.UtcNow;
            var payment    = 56.76m;
            var paycode    = Majorsilence.Vpn.Logic.Helpers.SiteInfo.MonthlyPaymentId;

            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(this.userid);

            pay.SaveUserPayment(payment, createDate, paycode);


            Assert.That(pay.IsExpired(), Is.False);
        }
예제 #7
0
        public void HistoryTest()
        {
            var createDate = DateTime.UtcNow;
            var payment    = 56.76m;
            var paycode    = Majorsilence.Vpn.Logic.Helpers.SiteInfo.MonthlyPaymentId;

            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(this.userid);


            for (int i = 0; i < 1000; i++)
            {
                pay.SaveUserPayment(payment, createDate.AddMonths(i), paycode);
                Assert.That(pay.History().Count(), Is.EqualTo(i + 1));
            }
        }
예제 #8
0
파일: Account.cs 프로젝트: majorsilence/vpn
        public Account(int userId)
        {
            var profileInfo = new Majorsilence.Vpn.Logic.Accounts.UserInfo(userId).GetProfile();

            FirstName  = profileInfo.FirstName;
            LastName   = profileInfo.LastName;
            UsersEmail = profileInfo.Email;

            ChargeAmount           = Majorsilence.Vpn.Logic.Helpers.SiteInfo.CurrentMonthlyRate.ToString("G29");
            ChargeAmountStripCents = Majorsilence.Vpn.Logic.Helpers.SiteInfo.CurrentMonthlyRateInCents;
            var payInfo = new Majorsilence.Vpn.Logic.Payments.Payment(userId);

            AccountExpired = payInfo.IsExpired();
            PaymentHistory = payInfo.History();
        }
예제 #9
0
        public void GenerateCertHappyPath()
        {
            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(this.userid);

            pay.SaveUserPayment(5, DateTime.UtcNow, Majorsilence.Vpn.Logic.Helpers.SiteInfo.MonthlyPaymentId);

            using (var sshClient = new Majorsilence.Vpn.Logic.Ssh.FakeSsh(Majorsilence.Vpn.Logic.Ssh.FakeSsh.TestingScenerios.OpenVpnHappyPath))
                using (var sshRevokeClient = new Majorsilence.Vpn.Logic.Ssh.FakeSsh(Majorsilence.Vpn.Logic.Ssh.FakeSsh.TestingScenerios.OpenVpnHappyPath))
                    using (var sftpClient = new Majorsilence.Vpn.Logic.Ssh.FakeSftp())
                    {
                        var vpn = new Majorsilence.Vpn.Logic.OpenVpn.CertsOpenVpnGenerateCommand(this.userid, this.vpnseverid,
                                                                                                 sshClient, sshRevokeClient, sftpClient);

                        vpn.Execute();
                    }
        }
예제 #10
0
        public void ExpireYearlyPaymentTest()
        {
            var createDate = DateTime.UtcNow;
            var payment    = 56.76m;
            var paycode    = Majorsilence.Vpn.Logic.Helpers.SiteInfo.YearlyPaymentId;

            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(this.userid);

            pay.SaveUserPayment(payment, createDate, paycode);
            DateTime expireDate = createDate.AddYears(1).AddDays(1);

            Assert.That(pay.ExpireDate().Year, Is.EqualTo(expireDate.Year));
            Assert.That(pay.ExpireDate().Month, Is.EqualTo(expireDate.Month));
            Assert.That(pay.ExpireDate().Day, Is.EqualTo(expireDate.Day));
            Assert.That(pay.ExpireDate().Hour, Is.EqualTo(expireDate.Hour));
            Assert.That(pay.ExpireDate().Minute, Is.EqualTo(expireDate.Minute));
            Assert.That(pay.ExpireDate().Second, Is.EqualTo(expireDate.Second));
        }
예제 #11
0
        public void ValidPaymentTest()
        {
            var           createDate = DateTime.UtcNow;
            const decimal payment    = 56.76m;
            var           paycode    = Majorsilence.Vpn.Logic.Helpers.SiteInfo.MonthlyPaymentId;

            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(this.userid);

            pay.SaveUserPayment(payment, createDate, paycode);

            using (var cn = Majorsilence.Vpn.Logic.InitializeSettings.DbFactory)
            {
                cn.Open();
                var data = cn.Query <Majorsilence.Vpn.Poco.UserPayments>("SELECT * FROM UserPayments WHERE UserId = @UserId AND AmountPaid=@amount AND " +
                                                                         "CreateTime=@CreateTime AND LookupPaymentTypeId=@payid",
                                                                         new { UserId = userid, amount = payment, CreateTime = createDate, payid = paycode });


                Assert.That(data.Count(), Is.EqualTo(1));
            }
        }
예제 #12
0
        public void LoginValidation(string username, string password)
        {
            var login = new Majorsilence.Vpn.Logic.Login(username, password);

            try
            {
                login.Execute();
            }
            catch (Majorsilence.Vpn.Logic.Exceptions.InvalidDataException)
            {
                this.HttpContext.Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError;
                return;
            }

            sessionInstance.LoggedIn = login.LoggedIn;
            sessionInstance.Username = username;
            sessionInstance.UserId   = login.UserId;
            sessionInstance.IsAdmin  = login.IsAdmin;

            if (sessionInstance.LoggedIn)
            {
                // if payments have expired or were never setup prompt the user
                // to setup payments
                var paymets = new Majorsilence.Vpn.Logic.Payments.Payment(sessionInstance.UserId);
                if (paymets.IsExpired())
                {
                    this.HttpContext.Response.StatusCode = 250;
                }
                else
                {
                    this.HttpContext.Response.StatusCode = (int)System.Net.HttpStatusCode.OK;
                }
            }
            else
            {
                this.HttpContext.Response.StatusCode = (int)System.Net.HttpStatusCode.Forbidden;
            }
        }
        private bool IsActiveAccount()
        {
            var pay = new Majorsilence.Vpn.Logic.Payments.Payment(userData.Id);

            return(!pay.IsExpired());
        }