rasul
2d19be25d9
change format! to concat() and modify listen() to take &String instead of String
5 years ago
rasul
6777efd142
document the global variables
5 years ago
rasul
d431c0f133
add some doc for init()
5 years ago
rasul
6a1df72b2a
reorder if and else to make more sense
5 years ago
rasul
4255dbaca7
change doc comment code because hash() now needs to return Result
5 years ago
rasul
77ab912d19
test the hash function
5 years ago
rasul
81c1c2920c
pub isn't needed for these vars
5 years ago
rasul
6e8e99e329
ensure requirements are met when changing password
5 years ago
rasul
bdf8f86ba5
Move the pass and name checks to its own module outside the Game struct.
...
This way it can be called from methods that are not members of Game
such as the password set command. It does require some global variables
and an initializion to get setup from the configuration.
5 years ago
rasul
73fbc8750d
handle errors with passwords
5 years ago
rasul
961b01ffd6
return Result for errors
5 years ago
rasul
45046af201
use argon2 instead of sha512
5 years ago
rasul
f722ad25fa
start on the help command stuff
...
it's nowhere near complete and isn't really operational yet but since i have
it started then maybe i'll finish it one day
5 years ago
rasul
f929fecb73
don't use 'string' as a name
5 years ago
rasul
c97fdd1410
rustfmt
5 years ago
rasul
428d6aeedd
log_error! macro to just log an error but with file and line
5 years ago
rasul
64114b6d68
Store a salted and hashed password.
...
Lots of changes for this to happen. Passwords are now to be stored separately
from the players in a separate table in the database, and will only be
queried when necessary. Random salts are generated, and a hash of the
salted password is stored along with the salt. Some functions and structs
to do all this were added. If I did it right, this should make the password
storage secure, even if nothing else is.
5 years ago
rasul
6677deb460
rustfmt
5 years ago
rasul
4cc0a1db3b
add hash() and salt() functions to be used for passwords
5 years ago
rasul
8fe7a14a75
replace ? with try_log! macro to log errors
5 years ago
rasul
c84f2e8c5b
use RudeResult and take generic errors
5 years ago
rasul
f917df3ea1
remove unused use
5 years ago
rasul
80c8b7bf06
rustfmt
5 years ago
rasul
c2a42c536f
move state changes to iter_once
5 years ago
rasul
53e67fcd1f
handle state changes
5 years ago
rasul
85d1eeff70
provide new state
5 years ago
rasul
a9cc95ef6c
rustfmt
5 years ago
rasul
f853002a90
check for valid password at creation
5 years ago
rasul
db8e3cf1f7
only proceed if y was selected
5 years ago
rasul
6c0eb7a57d
rustfmt
5 years ago
rasul
b9156b0300
check that name is valid per name requirements
5 years ago
rasul
70ebf1a210
don't need Id anymore
5 years ago
rasul
0f9da2da65
config.starting_location is now config.player.starting_location
5 years ago
rasul
aba6e663df
some comments
5 years ago
rasul
7a17fe4a08
use config instead of hard coded values
5 years ago
rasul
f4134b1911
add player config section and move starting_location there with the other new player related configs
5 years ago
rasul
b7bfda95e9
methods to check if a name or password are valid
5 years ago
rasul
06ce7bec7b
use the From<(Token, Into<String>)> impl
5 years ago
rasul
24c6c01da7
subcommand: set room zone : to set zone for the current room
5 years ago
rasul
222aa967a1
rustfmt
5 years ago
rasul
61b769b3c1
add a parse_str() method to Id
5 years ago
rasul
c963514967
from implementation to conveniently make SendQueue from (Token, Into<String>)
5 years ago
rasul
77a5df67d8
don't need to use the name mod
5 years ago
rasul
29e6f59864
log error message
5 years ago
rasul
0cff41a4f2
don't need to use name module
5 years ago
rasul
faadf904e0
subcommand to change player password
5 years ago
rasul
cc10e5001f
remove from connected_players when quit
5 years ago
rasul
933c63f717
short comment to describe dispatch_quit()
5 years ago
rasul
0547792265
pass quit state back when player quits, and check for that to close the connection
5 years ago
rasul
acc6f26df5
add a quit state for quitting the mud
5 years ago