Пример #1
0
    protected void ProfileButton_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            Member User = Member.Current;
            RegistrationFieldCreator.Save(User, this.CustomFields, true);

            User.AddToPointsBalance(AppSettings.Authentication.ProfilingSurveyReward, "Profiling survey");
            User.Save();

            Response.Redirect("~/status.aspx?type=profilerok");
        }
    }
Пример #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Member.IsLogged && !ProfilingManager.IsProfiled(Member.Current))
        {
            LangAdder.Add(ProfileButton, L1.SEND);
            LangAdder.Add(SkipButton, U3900.SKIP);

            if (AppSettings.Authentication.CustomFieldsAsSurvey)
            {
                var    panel = RegistrationFieldCreator.Generate(true);
                Member User  = Member.CurrentInCache;

                foreach (var control in panel.Controls)
                {
                    if (control is TextBox || control is CheckBox)
                    {
                        WebControl target = (WebControl)control;
                        string     id     = target.ID.Replace("CustomField", "");

                        if (User.Custom.ContainsKey(id))
                        {
                            target.Enabled = false;

                            if (control is TextBox)
                            {
                                ((TextBox)target).Text = User.Custom.ToList().FirstOrDefault(x => x.Key == id).Value.ToString();
                            }

                            if (control is CheckBox)
                            {
                                ((CheckBox)target).Checked = Convert.ToBoolean(User.Custom.ToList().FirstOrDefault(x => x.Key == id).Value);
                            }
                        }
                    }
                }

                CustomFields.Controls.Add(panel);
            }
        }
    }
Пример #3
0
    public static void Register(string InUsername, string InEmail, int InPIN, DateTime InBirthYear, string InPassword, string InReferer, Gender InGender, Panel CustomFields,
                                string FirstName, string SecondName, string Address, string City, string StateProvince, string ZipCode, bool isEarner, bool isAdvertiser, bool isPublisher, string FacebookId = null,
                                bool skipRedirection = false)
    {
        AppSettings.Email.Reload();

        bool IsFromFacebookOAuth = FacebookId != null ? true : false;

        // 0. Logged-in check
        if (Member.IsLogged)
        {
            throw new MsgException(U5009.LOGOUTTOREGISTER);
        }

        // 1. Validate if Username is not taken
        if (Member.Exists(InUsername))
        {
            throw new MsgException(L1.ER_INVALIDUSERNAME3);
        }

        // Or forbidden
        if (!SecurityManager.IsOkWithRules(SecurityRuleType.Username, InUsername) || InUsername.Contains("refback"))
        {
            throw new MsgException(L1.UNAMEFORBID);
        }

        // 2. Validate if Email is not taken
        if (Member.ExistsWithEmail(InEmail))
        {
            throw new MsgException(L1.ER_DUPLICATEEMAIL);
        }

        string             currentip = IP.Current;
        CountryInformation CIService = new CountryInformation(currentip);

        // 0. Validate if Country/IP is not forbidden
        if (!SecurityManager.IsOkWithRules(SecurityRuleType.IP, currentip))
        {
            throw new MsgException(L1.IPFORBID);
        }

        if (!SecurityManager.IsOkWithRules(SecurityRuleType.Country, CIService.CountryName))
        {
            throw new MsgException(L1.COUNTRYFORBID);
        }

        // Validate if IP is not a proxy
        if (AppSettings.Proxy.IPPolicy == IPVerificationPolicy.EveryRegistration && ProxyManager.IsProxy(currentip))
        {
            throw new MsgException(L1.IPAPROXY);
        }

        if (AppSettings.Site.AllowOnlyOneRegisteredIP)
        {
            int membersRegisteredWithThisIP = (int)TableHelper.SelectScalar(
                String.Format("SELECT COUNT(*) FROM Users WHERE RegisteredWithIP = '{0}'", currentip));

            if (membersRegisteredWithThisIP > 0)
            {
                throw new MsgException(U5005.IPALREADYREGISTERED);
            }
        }

        AppSettings.DemoCheck();

        //Validate if country is OK
        FeatureManager Manager = null;

        if (IsFromFacebookOAuth)
        {
            Manager = new FeatureManager(GeolocatedFeatureType.FacebookRegistration);
        }
        else
        {
            Manager = new FeatureManager(GeolocatedFeatureType.Registration);
        }

        if (!Manager.IsAllowed)
        {
            throw new MsgException(U4000.SORRYCOUNTRY);
        }

        // All data is OK. Now lets register
        Member NewMember = new Member();

        NewMember.Name            = InUsername;
        NewMember.Email           = InEmail;
        NewMember.PIN             = InPIN;
        NewMember.BirthYear       = InBirthYear;
        NewMember.PrimaryPassword = MemberAuthenticationService.ComputeHash(InPassword);
        NewMember.FacebookOAuthId = FacebookId;

        //Detailed info?
        if (AppSettings.Authentication.DetailedRegisterFields)
        {
            NewMember.FirstName     = FirstName;
            NewMember.SecondName    = SecondName;
            NewMember.Address       = Address;
            NewMember.City          = City;
            NewMember.StateProvince = StateProvince;
            NewMember.ZipCode       = ZipCode;
            NewMember.Gender        = InGender;
        }

        //Custom fields?
        RegistrationFieldCreator.Save(NewMember, CustomFields);

        NewMember.CameFromUrl                     = (HttpContext.Current.Session == null || HttpContext.Current.Session["ReferralFrom"] == null) ? "Unknown" : HttpContext.Current.Session["ReferralFrom"].ToString().Replace("www.", "");
        NewMember.Country                         = CIService.CountryName;
        NewMember.CountryCode                     = CIService.CountryCode;
        NewMember.MessageSystemTurnedOn           = true;
        NewMember.RevenueShareAdsWatchedYesterday = 1000; //No yesterday, that is why we assume that he watched all
        NewMember.PointsBalance                   = 0;

        //Slot Machine Modlue
        if (AppSettings.TitanFeatures.SlotMachineEnabled)
        {
            try
            {
                NewMember.PointsBalance = (int)HttpContext.Current.Session["anonymousSlotMachinePoints"];
            }
            catch (Exception slotError)
            {
                NewMember.SlotMachineChances = 1;
                ErrorLogger.Log(slotError);
            }
        }

        //Account type
        NewMember.IsEarner     = isEarner;
        NewMember.IsAdvertiser = isAdvertiser;
        NewMember.IsPublisher  = isPublisher;

        // Check if instant register or requires activation

        if (AppSettings.Authentication.IsInstantlyActivated || AppSettings.IsDemo || IsFromFacebookOAuth)
        {
            //Adding referer and points bonus
            NewMember.TryAddReferer(InReferer);

            //Add history entry
            History.AddRegistration(NewMember.Name);

            //Representatives policy
            TrySetRepresentativeAsReferer(NewMember, CIService);

            if (AppSettings.Proxy.SMSType == ProxySMSType.EveryRegistration)
            {
                NewMember.Register(MemberStatus.AwaitingSMSPIN);
            }
            else
            {
                if (NewMember.HasReferer)
                {
                    var list = new List <RestrictionKind>(new RestrictionKind[] { RestrictionKind.DirectReferralsCount });
                    LeadershipSystem.CheckSystem(list, new Member(NewMember.ReferrerId));
                }
                NewMember.Register(MemberStatus.Active);
            }

            //Registration Bonus
            TryApplyRegistrationBonus(Manager, NewMember);

            //Matrix
            MatrixBase matrix = MatrixFactory.GetMatrix();
            if (matrix != null)
            {
                matrix.TryAddMember(NewMember);
            }

            if (!skipRedirection)
            {
                HttpContext.Current.Response.Redirect("~/status.aspx?type=registerok&id=register1");
            }
        }
        else
        {
            try
            {
                Mailer.SendActivationLink(InUsername, InEmail);

                //Representatives policy
                TrySetRepresentativeAsReferer(NewMember, CIService);

                //Adding referer and points bonus
                NewMember.TryAddReferer(InReferer);

                NewMember.Register(MemberStatus.Inactive);

                //Add history entry
                History.AddRegistration(NewMember.Name);

                //Registration Bonus
                TryApplyRegistrationBonus(Manager, NewMember);

                //Matrix
                MatrixBase matrix = MatrixFactory.GetMatrix();
                if (matrix != null)
                {
                    matrix.TryAddMember(NewMember);
                }
            }
            catch (Exception ex)
            {
                ErrorLogger.Log(ex);
                throw new MsgException("The system was unable to send the activation e-mail. Contact the administrator.");
            }

            if (!skipRedirection)
            {
                HttpContext.Current.Response.Redirect("~/status.aspx?type=registerok&id=register2");
            }
        }
    }
Пример #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        GlobalMasterHelper.PageLoad();
        AdBlockManager.CheckDenyForAll();

        RegistrationCaptchaPlaceHolder.Visible = AppSettings.Registration.IsRegistrationCaptchaEnabled;
        PINSectionPlaceHolder.Visible          = AppSettings.Registration.IsPINEnabled;

        if (!Page.IsPostBack)
        {
            AppSettings.Authentication.Reload();

            if (Request.QueryString["e"] != null)
            {
                Email.Text = Request.QueryString["e"];
            }

            if (TitanFeatures.IsRetireYoung)
            {
                ReferrerUtils.SetReferrer("RetireYoung");
            }

            if (Request.QueryString["u"] != null || ReferrerUtils.GetReferrerName() != null)
            {
                string refUsername;
                if (Request.QueryString["u"] != null)
                {
                    ReferrerUtils.SetReferrer(Request.QueryString["u"]);
                }

                refUsername = ReferrerUtils.GetReferrerName();

                if (!Page.IsPostBack)
                {
                    PoolRotatorManager.TryAddLinkView(refUsername);
                }

                // With referral link for Pool Rotator
                refUsername = PoolRotatorManager.TryGetUserNameFromPool(refUsername);

                Referer.Text = refUsername;
            }
            else if (Session["PaidToPromoteReferer"] != null)
            {
                var refId       = Convert.ToInt32(Session["PaidToPromoteReferer"].ToString());
                var refUsername = new Member(refId).Name;

                Referer.Text = refUsername;
            }
        }
        FeatureManager Manager = null;

        //Facebook OAuth
        if (IsFromFacebookOAuth)
        {
            //Check if country is eligible for Facebook Register
            Manager = new FeatureManager(GeolocatedFeatureType.FacebookRegistration);

            //Hide unnecessary fields
            FacebookMember fbMember = new FacebookMember(Session["accessToken"].ToString());

            Email.Text = fbMember.Email;

            //Passwords validators
            RegularExpressionValidator2.Enabled = false;
            PasswordRequired.Enabled            = false;
            ConfirmPasswordRequired.Enabled     = false;
            PasswordCompare.Enabled             = false;
            CustomValidator1.Enabled            = false;
            TitanCaptcha.Visible = false;

            FirstName.Text  = fbMember.FirstName;
            SecondName.Text = fbMember.LastName;
        }
        else
        {
            //Check if country is eligible for Standard Register
            Manager = new FeatureManager(GeolocatedFeatureType.Registration);
        }

        if (!Manager.IsAllowed)
        {
            RegistrationPanel.Visible = false;
            CreateUserButton.Visible  = false;
            ErrorMessagePanel.Visible = true;
            ErrorMessage.Text         = U4000.SORRYCOUNTRY;
        }

        //Set up textbox hints
        HintAdder.Add(Username, L1.REG_USERNAME);
        HintAdder.Add(Password, U3501.REG_PASSWORD);
        HintAdder.Add(Email, L1.REG_EMAIL);
        HintAdder.Add(PIN, L1.REG_PIN);
        HintAdder.Add(Referer, L1.REG_REFERER);

        Username.Attributes.Add("placeholder", L1.USERNAME);
        Email.Attributes.Add("placeholder", "Email");
        Password.Attributes.Add("placeholder", L1.PASSWORD);
        ConfirmPassword.Attributes.Add("placeholder", L1.CONFIRMPASSWORD);
        PIN.Attributes.Add("placeholder", L1.DESIREDPIN);
        BirthYear.Attributes.Add("placeholder", L1.BIRTHYEAR);
        FirstName.Attributes.Add("placeholder", L1.FIRSTNAME);
        SecondName.Attributes.Add("placeholder", L1.SECONDNAME);
        City.Attributes.Add("placeholder", L1.CITY);
        StateProvince.Attributes.Add("placeholder", L1.STATEPROVINCE);
        ZipCode.Attributes.Add("placeholder", L1.ZIPCODE);

        Address.Attributes.Add("placeholder", L1.ADDRESS);

        //Add translations
        LangAdder.Add(CreateUserButton, L1.REGISTER);
        LangAdder.Add(RegularExpressionValidator1, L1.ER_INVALIDUSERNAME, true);
        LangAdder.Add(UserNameRequired, L1.REG_REQ_USERNAME, true);
        LangAdder.Add(EmailRequired, L1.REG_REQ_EMAIL, true);
        LangAdder.Add(CorrectEmailRequired, L1.ER_BADEMAILFORMAT, true);
        LangAdder.Add(PasswordRequired, L1.REG_REQ_PASS, true);
        LangAdder.Add(RegularExpressionValidator2, L1.ER_INVALIDPASS, true);
        LangAdder.Add(PasswordCompare, L1.ER_PASSDIFFER, true);
        LangAdder.Add(ConfirmPasswordRequired, L1.REG_REQ_CONFIRM, true);
        LangAdder.Add(RegularExpressionValidator3, L1.ER_BADPIN, true);
        LangAdder.Add(RequiredFieldValidator2, L1.REG_REQ_PIN, true);
        LangAdder.Add(RegularExpressionValidator4, L1.ER_BADYEAR, true);
        LangAdder.Add(RequiredFieldValidator1, L1.REG_REQ_YEAR, true);
        LangAdder.Add(RefererValidator, L1.ER_BADREF, true);
        LangAdder.Add(CustomValidator1, L1.ER_BADCAPTCHA, true);
        LangAdder.Add(CustomValidator4, L1.REG_REQ_TOS, true);

        EarnerCheckBox.Text     = U6000.EARNER;
        AdvertiserCheckBox.Text = L1.ADVERTISER;
        PublisherCheckBox.Text  = U6000.PUBLISHER;

        //Detailed info
        LangAdder.Add(RE_1, L1.DETAILEDNOSPECIAL + " " + L1.FIRSTNAME, true);
        LangAdder.Add(RF_1, L1.FIRSTNAME + " " + U3900.FIELDISREQUIRED, true);
        LangAdder.Add(RE_2, L1.DETAILEDNOSPECIAL + " " + L1.SECONDNAME, true);
        LangAdder.Add(RF_2, L1.SECONDNAME + " " + U3900.FIELDISREQUIRED, true);
        LangAdder.Add(RE_3, L1.DETAILEDNOSPECIAL + " " + L1.ADDRESS, true);
        LangAdder.Add(RF_3, L1.ADDRESS + " " + U3900.FIELDISREQUIRED, true);
        LangAdder.Add(RE_4, L1.DETAILEDNOSPECIAL + " " + L1.CITY, true);
        LangAdder.Add(RF_4, L1.CITY + " " + U3900.FIELDISREQUIRED, true);
        LangAdder.Add(RE_5, L1.DETAILEDNOSPECIAL + " " + L1.STATEPROVINCE, true);
        LangAdder.Add(RF_5, L1.STATEPROVINCE + " " + U3900.FIELDISREQUIRED, true);
        LangAdder.Add(RE_6, L1.DETAILEDNOSPECIAL + " " + L1.ZIPCODE, true);
        LangAdder.Add(RF_6, L1.ZIPCODE + " " + U3900.FIELDISREQUIRED, true);
        LangAdder.Add(AccountTypeValidator, U6000.SELECTACCOUNTTYPE, true);

        //Check detailed info
        if (AppSettings.Authentication.DetailedRegisterFields)
        {
            DetailedPanel.Visible = true;
        }

        AvailableRolesPlaceHolder.Visible     = !AppSettings.Registration.IsDefaultRegistrationStatusEnabled;
        EarnerCheckBoxPlaceHolder.Visible     = AppSettings.TitanFeatures.EarnersRoleEnabled;
        AdvertiserCheckBoxPlaceHolder.Visible = AppSettings.TitanFeatures.AdvertisersRoleEnabled;
        PublisherCheckBoxPlaceHolder.Visible  = AppSettings.TitanFeatures.PublishersRoleEnabled;

        if (AppSettings.Registration.IsDefaultRegistrationStatusEnabled)
        {
            EarnerCheckBox.Checked     = AppSettings.Registration.IsDefaultEarnerStatus;
            AdvertiserCheckBox.Checked = AppSettings.Registration.IsDefaultAdvertiserStatus;
            PublisherCheckBox.Checked  = AppSettings.Registration.IsDefaultPublisherStatus;
        }

        //Custom field
        CustomFields.Controls.Add(RegistrationFieldCreator.Generate());

        CountryInformation CIService = new CountryInformation(IP.Current);

        CountryName.Text = CIService.CountryName;
        Flag.ImageUrl    = "~/Images/Flags/" + CIService.CountryCode.ToLower() + ".png";
    }