Exemple #1
0
 /// <summary>
 /// Write login data to table
 /// </summary>
 /// <param name="login">
 /// Login data to write
 /// </param>
 public static void WriteLoginData(DBLoginData login)
 {
     try
     {
         using (IDbConnection conn = Connector.GetConnection())
         {
             conn.Execute(
                 "INSERT INTO login (CreationDate, Email, FirstName, LastName, Username, Password, Allowed_Characters, Flags, AccountFlags, Expansions, GM) VALUES (@creationdate, @email, @firstname, @lastname,@username, @password, @allowed_characters, @flags, @accountflags, @expansions, @gm)",
                 new
             {
                 creationdate       = DateTime.Now,
                 email              = login.Email,
                 firstname          = login.FirstName,
                 lastname           = login.LastName,
                 username           = login.Username,
                 password           = login.Password,
                 allowed_characters = login.Allowed_Characters,
                 flags              = login.Flags,
                 accountflags       = login.AccountFlags,
                 expansions         = login.Expansions,
                 gm = login.GM
             });
         }
     }
     catch (Exception e)
     {
         LogUtil.ErrorException(e);
         throw;
     }
 }
Exemple #2
0
 /// <summary>
 /// Write new password to table
 /// </summary>
 /// <param name="login">
 /// DBLoginData object
 /// </param>
 /// <returns>
 /// </returns>
 public static int WriteNewPassword(DBLoginData login)
 {
     try
     {
         using (IDbConnection conn = Connector.GetConnection())
         {
             return(conn.Execute(
                        "UPDATE login SET password=@pwd WHERE Username=@user LIMIT 1",
                        new { pwd = login.Password, user = login.Username }));
         }
     }
     catch (Exception e)
     {
         LogUtil.ErrorException(e);
         return(0);
     }
 }
        /// <summary>
        /// </summary>
        /// <param name="obj">
        /// </param>
        private static void AddUser(string[] obj)
        {
            Colouring.Push(ConsoleColor.Red);
            bool argsOk = CheckAddUserParameters(obj);
            Colouring.Pop();

            if (!argsOk)
            {
                return;
            }

            DBLoginData login = new DBLoginData
                                {
                                    Username = obj[1],
                                    AccountFlags = 0,
                                    Allowed_Characters = int.Parse(obj[3]),
                                    CreationDate = DateTime.Now,
                                    Email = obj[6],
                                    Expansions = int.Parse(obj[4]),
                                    FirstName = obj[7],
                                    LastName = obj[8],
                                    GM = int.Parse(obj[5]),
                                    Flags = 0,
                                    Password = new LoginEncryption().GeneratePasswordHash(obj[2])
                                };

            try
            {
                LoginDataDao.WriteLoginData(login);
            }
            catch (Exception ex)
            {
                Colouring.Push(ConsoleColor.Red);
                Console.WriteLine(
                    "An error occured while trying to add a new user account:" + Environment.NewLine + "{0}",
                    ex.Message);
                Colouring.Pop();
                return;
            }

            Colouring.Push(ConsoleColor.Green);
            Console.WriteLine("User added successfully.");
            Colouring.Pop();
        }
        private string RegisterAccount(List<string[]> split)
        {
            /*
             * NOT SQL-INJECTION SAFE YET!
             *
             * To do: Add sql-checks for entries
             */

            // Check wether everything is filled in or not.
            if (!string.IsNullOrEmpty(split[1][1]) && !string.IsNullOrEmpty(split[2][1]) && !string.IsNullOrEmpty(split[3][1])
                            && !string.IsNullOrEmpty(split[4][1]) && !string.IsNullOrEmpty(split[5][1]) && !string.IsNullOrEmpty(split[6][1]))
            {
                if (!LoginDataDao.Instance.Exists(split[2][1]))
                {
                    // Check Email format
                    if (TestEmailRegex.TestEmail(split[1][1]))
                    {
                        if (split[5][1] == split[6][1])
                        {
                            DBLoginData dbchar = new DBLoginData();

                            dbchar.AccountFlags = 0;
                            dbchar.AllowedCharacters = 12;
                            dbchar.CreationDate = DateTime.Now;
                            dbchar.Email = split[1][1];
                            dbchar.Expansions = 2047;
                            dbchar.FirstName = split[3][1];
                            dbchar.Flags = 0;
                            dbchar.GM = 0;
                            dbchar.LastName = split[4][1];
                            dbchar.Password = new LoginEncryption().GeneratePasswordHash(split[5][1]);
                            dbchar.Username = split[2][1];

                            CellAO.Database.Dao.LoginDataDao.Instance.Add(dbchar);
                            Console.WriteLine("Account created.");

                            return "Account created.";
                        }
                        return "Passwords are not matching, please retry.";
                    }
                    return "Email is wrong, please retry.";
                }
                return "Username is already taken, please retry.";
            }
            else
            {
                return "n/a";
            }
        }
        /// <summary>
        /// </summary>
        /// <param name="obj">
        /// </param>
        private static void AddUser(string[] obj)
        {
            if (obj.Length == 1)
            {
                List<string> temp = new List<string>();
                temp.Add("adduser");

                while (true)
                {
                    Console.Write("Username: "******"Please enter a username (at least 6 chars)...");
                        continue;
                    }
                    if (CheckUsername(test))
                    {
                        temp.Add(test);
                        break;
                    }
                }

                while (true)
                {
                    Console.Write("Password: "******"Please enter a password (at least 6 chars) for your safety...");
                        continue;
                    }
                    temp.Add(test);
                    break;
                }

                while (true)
                {
                    Console.WriteLine("Number of character slots: ");
                    string test = Console.ReadLine();
                    if (IsNumber(test))
                    {
                        temp.Add(test);
                        break;
                    }
                }

                Console.WriteLine("Expansions: Enter 2047 for all expansions (i know you want that)");
                while (true)
                {
                    Console.Write("Expansions: ");
                    string test = Console.ReadLine();
                    if (IsNumber(test))
                    {
                        temp.Add(test);
                        break;
                    }
                }

                Console.WriteLine(
                    "GM-Level: Anything above 0 is GM, but there are differences. Full Client GM = 1 (using keyboard shortcuts) but for some items you have to be GM Level 511");
                while (true)
                {
                    Console.Write("GM-Level: ");
                    string test = Console.ReadLine();
                    if (IsNumber(test))
                    {
                        temp.Add(test);
                        break;
                    }
                }

                while (true)
                {
                    Console.WriteLine("E-Mail: ");
                    string test = Console.ReadLine();
                    if (TestEmailRegex.TestEmail(test))
                    {
                        temp.Add(test);
                        break;
                    }
                }

                Console.Write("First name: ");
                temp.Add(Console.ReadLine());

                Console.Write("Last name: ");
                temp.Add(Console.ReadLine());

                obj = temp.ToArray();
            }

            Colouring.Push(ConsoleColor.Red);
            bool argsOk = CheckAddUserParameters(obj);
            Colouring.Pop();

            if (!argsOk)
            {
                return;
            }

            DBLoginData login = new DBLoginData
                                {
                                    Username = obj[1],
                                    AccountFlags = 0,
                                    AllowedCharacters = int.Parse(obj[3]),
                                    CreationDate = DateTime.Now,
                                    Email = obj[6],
                                    Expansions = int.Parse(obj[4]),
                                    FirstName = obj[7],
                                    LastName = obj[8],
                                    GM = int.Parse(obj[5]),
                                    Flags = 0,
                                    Password = new LoginEncryption().GeneratePasswordHash(obj[2])
                                };

            try
            {
                LoginDataDao.WriteLoginData(login);
            }
            catch (Exception ex)
            {
                Colouring.Push(ConsoleColor.Red);
                Console.WriteLine(
                    "An error occured while trying to add a new user account:" + Environment.NewLine + "{0}",
                    ex.Message);
                Colouring.Pop();
                return;
            }

            Colouring.Push(ConsoleColor.Green);
            Console.WriteLine("User added successfully.");
            Colouring.Pop();
        }
 /// <summary>
 /// Write new password to table
 /// </summary>
 /// <param name="login">
 /// DBLoginData object
 /// </param>
 /// <returns>
 /// </returns>
 public static int WriteNewPassword(DBLoginData login)
 {
     try
     {
         using (IDbConnection conn = Connector.GetConnection())
         {
             return conn.Execute(
                 "UPDATE login SET password=@pwd WHERE Username=@user LIMIT 1",
                 new { pwd = login.Password, user = login.Username });
         }
     }
     catch (Exception e)
     {
         LogUtil.ErrorException(e);
         return 0;
     }
 }
 /// <summary>
 /// Write login data to table
 /// </summary>
 /// <param name="login">
 /// Login data to write
 /// </param>
 public static void WriteLoginData(DBLoginData login)
 {
     try
     {
         using (IDbConnection conn = Connector.GetConnection())
         {
             conn.Execute(
                 "INSERT INTO login (CreationDate, Email, FirstName, LastName, Username, Password, Allowed_Characters, Flags, AccountFlags, Expansions, GM) VALUES (@creationdate, @email, @firstname, @lastname,@username, @password, @allowed_characters, @flags, @accountflags, @expansions, @gm)",
                 new
                 {
                     creationdate = DateTime.Now,
                     email = login.Email,
                     firstname = login.FirstName,
                     lastname = login.LastName,
                     username = login.Username,
                     password = login.Password,
                     allowed_characters = login.Allowed_Characters,
                     flags = login.Flags,
                     accountflags = login.AccountFlags,
                     expansions = login.Expansions,
                     gm = login.GM
                 });
         }
     }
     catch (Exception e)
     {
         LogUtil.ErrorException(e);
         throw;
     }
 }