Ejemplo n.º 1
0
        public override bool Register(UserBase user, byte[] password, string email)
        {
            try
            {
                if (user.Level >= Authorizations.Registered)
                {
                    return(false);
                }

                user.Password             = password;
                user.Properties["E-Mail"] = email;
                user.Level        = Cache.Accounts.Count > 0 ? Authorizations.Registered : Authorizations.NetworkOperator;
                user.Mask.Account = user.Id;
                Cache.Accounts.Add(user.Mask.Account, user);
                user.Commit();

                UsersByAccount.Add(user.Mask.Account, new List <UserBase>(new UserBase[] { user }));

                user.SendNumeric(Numerics.RPL_REGISTERED, ":You are now registered and logged in.  Use /login password to log in next time you connect.");
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Ejemplo n.º 2
0
        public override bool LogIn(UserBase user, string account, byte[] password)
        {
            try
            {
                if (!Cache.Accounts.ContainsKey(account))
                {
                    return(false);
                }
                UserSurrogate cache = Cache.Accounts[account];

                if (password.Length != cache.Password.Length)
                {
                    return(false);
                }
                for (int i = 0; i < password.Length; i++)
                {
                    if (password[i] != cache.Password[i])
                    {
                        return(false);
                    }
                }

                cache.LastSeen = DateTime.Now;
                user.Load(cache);
                user.Mask.Account = account;

                if (UsersByAccount.ContainsKey(account))
                {
                    UsersByAccount[account].Add(user);
                }
                else
                {
                    UsersByAccount.Add(account, new List <UserBase>(new UserBase[] { user }));
                }

                user.SetModes(null, "+r" + (user.Level < Authorizations.NetworkOperator ? "" : "o"), string.Empty);
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Ejemplo n.º 3
0
        public override UserSurrogate GetRegisteredUser(string account)
        {
            if (UsersByAccount.ContainsKey(account))
            {
                List <UserBase> users = UsersByAccount[account];
                if (users.Count > 0)
                {
                    return(UsersByAccount[account][0]);
                }
            }

            if (Cache.Accounts.ContainsKey(account))
            {
                return(Cache.Accounts[account]);
            }
            else
            {
                return(null);
            }
        }