/// <summary> /// Inserts a brand new user in db. /// </summary> /// <param name="username"></param> /// <param name="email"></param> /// <param name="password"></param> /// <param name="ip"></param> /// <returns></returns> public Database.DA.Users.User CreateUser(string username, string email, string password, string ip) { using (var da = DAFactory.Get()) { var userModel = new Database.DA.Users.User(); userModel.username = username; userModel.email = email; userModel.is_admin = false; userModel.is_moderator = false; userModel.user_state = Database.DA.Users.UserState.valid; userModel.register_date = Epoch.Now; userModel.is_banned = false; userModel.register_ip = ip; userModel.last_ip = ip; var passhash = PasswordHasher.Hash(password); var authSettings = new Database.DA.Users.UserAuthenticate(); authSettings.scheme_class = passhash.scheme; authSettings.data = passhash.data; try { var userId = da.Users.Create(userModel); authSettings.user_id = userId; da.Users.CreateAuth(authSettings); return(da.Users.GetById(userId)); } catch (Exception) { return(null); } } }
/// <summary> /// Changes a user's password. /// </summary> /// <param name="user_id"></param> /// <param name="new_password"></param> public void ChangePassword(uint user_id, string new_password) { using (var da = DAFactory.Get()) { var passhash = PasswordHasher.Hash(new_password); var authSettings = new Database.DA.Users.UserAuthenticate(); authSettings.scheme_class = passhash.scheme; authSettings.data = passhash.data; authSettings.user_id = user_id; da.Users.UpdateAuth(authSettings); } }