Example #1
0
        protected override Account DoCreateAccount(WebContext context)
        {
            if (Config.instance.IsMigrationEnabled)
            {
                try {
                    Account tmpAccount = Account.LoadByName(context.httprequest.Form["login"]);
                    if (tmpAccount.needsMigration)
                    {
                        throw new RedirectException("/My/Login/MigrateAccount/" + context.httprequest.Form["login"]);
                    }
                } catch (NotFoundInDBException) {
                }
            }

            Invite invite = Invite.LoadById(int.Parse(context.httprequest.Form["inviteId"]));

            if (invite.isUsed)
            {
                throw new FLocalException("Invite is already used");
            }
            if (context.httprequest.Form["password"] != context.httprequest.Form["password2"])
            {
                throw new FLocalException("Passwords mismatch");
            }
            return(invite.createAccount(context.httprequest.Form["code"], context.httprequest.Form["login"], context.httprequest.Form["password"], context.httprequest.UserHostAddress, context.httprequest.Form["registrationEmail"]));
        }