Compare commits

...

8 Commits

Author SHA1 Message Date
52873fc759
fix cli user creation usage
All checks were successful
mapguesser/pipeline/pr-develop This commit looks good
2023-09-25 21:27:19 +02:00
0882a67019
fix build badge link 2023-09-25 21:27:19 +02:00
49069f4a52
Merge pull request 'username should be an argument of user:add' (!71) from bugfix/fix-user-creation-cli into develop
All checks were successful
mapguesser/pipeline/head This commit looks good
Reviewed-on: #71
2023-09-25 21:21:54 +02:00
4bba7599e1
Merge pull request 'bugfix/username-validation-fixes' (!72) from bugfix/username-validation-fixes into develop
Some checks are pending
mapguesser/pipeline/head Build queued...
Reviewed-on: #72
2023-09-25 21:21:48 +02:00
7fb75c9f25
reset grecaptcha in case of error
All checks were successful
mapguesser/pipeline/pr-develop This commit looks good
2023-09-25 21:19:32 +02:00
5d367d5b35
check if username is used during signup 2023-09-25 21:08:34 +02:00
a2d6376e81
check if username is empty in usercontroller 2023-09-25 20:55:21 +02:00
f3c3aa69eb
username should be an argument of user:add
All checks were successful
mapguesser/pipeline/pr-develop This commit looks good
2023-09-25 20:44:34 +02:00
5 changed files with 28 additions and 6 deletions

View File

@ -1,6 +1,6 @@
# MapGuesser
[![Build Status](https://jenkins.e5tv.hu/job/mapguesser/job/develop/badge/icon)](https://jenkins.e5tv.hu/job/mapguesser/job/develop/)
[![Build Status](https://ci.esoko.eu/job/mapguesser/job/develop/badge/icon)](https://ci.esoko.eu/job/mapguesser/job/develop/)
This is the MapGuesser Application project. This is a game about guessing where you are based on a street view panorama - inspired by existing applications.
@ -80,7 +80,7 @@ docker compose up -d
**And you are done!** The application is ready to use. You can create the first administrative user with the following command after attaching to the `app` container:
```
./mapg user:add EMAIL PASSWORD admin
./mapg user:add EMAIL USERNAME PASSWORD admin
```
## Development

View File

@ -89,6 +89,9 @@ var MapGuesser = {
formError.style.display = 'block';
formError.innerHTML = this.response.error.errorText;
if (typeof grecaptcha !== 'undefined') {
grecaptcha.reset();
}
return;
}

View File

@ -14,6 +14,7 @@ class AddUserCommand extends Command
$this->setName('user:add')
->setDescription('Adding of user.')
->addArgument('email', InputArgument::REQUIRED, 'Email of user')
->addArgument('username', InputArgument::REQUIRED, 'Username of user')
->addArgument('password', InputArgument::REQUIRED, 'Password of user')
->addArgument('type', InputArgument::OPTIONAL, 'Type of user');;
}
@ -22,6 +23,7 @@ class AddUserCommand extends Command
{
$user = new User();
$user->setEmail($input->getArgument('email'));
$user->setUsername($input->getArgument('username'));
$user->setPlainPassword($input->getArgument('password'));
$user->setActive(true);
$user->setCreatedDate(new DateTime());

View File

@ -364,11 +364,24 @@ class LoginController
$newUser->setPlainPassword(\Container::$request->post('password'));
}
if (strlen(\Container::$request->post('username')) > 0 && preg_match('/^[a-zA-Z0-9_\-\.]+$/', \Container::$request->post('username')) !== 1) {
return new JsonContent(['error' => ['errorText' => 'Username can contain only english letters, digits, - (hyphen), . (dot), _ (underscore).']]);
if (strlen(\Container::$request->post('username')) > 0) {
$username = \Container::$request->post('username');
if (preg_match('/^[a-zA-Z0-9_\-\.]+$/', $username) !== 1) {
return new JsonContent(['error' => ['errorText' => 'Username can contain only english letters, digits, - (hyphen), . (dot), _ (underscore).']]);
}
if ($this->userRepository->getByUsername($username) !== null) {
return new JsonContent(['error' => ['errorText' => 'The given username is already taken.']]);
}
} else {
$usernameGenerator = new UsernameGenerator();
do {
$username = $usernameGenerator->generate();
} while ($this->userRepository->getByUsername($username));
}
$newUser->setUsername(strlen(\Container::$request->post('username')) > 0 ? \Container::$request->post('username') : (new UsernameGenerator())->generate());
$newUser->setUsername($username);
$newUser->setCreatedDate(new DateTime());
\Container::$persistentDataManager->saveToDb($newUser);

View File

@ -290,7 +290,11 @@ class UserController implements IAuthenticationRequired
}
$newUsername = \Container::$request->post('username');
if (strlen($newUsername) > 0 && $newUsername !== $user->getUsername()) {
if ($newUsername !== $user->getUsername()) {
if (strlen($newUsername) == 0) {
return new JsonContent(['error' => ['errorText' => 'Username cannot be empty.']]);
}
if (preg_match('/^[a-zA-Z0-9_\-\.]+$/', $newUsername) !== 1) {
return new JsonContent(['error' => ['errorText' => 'Username can contain only english letters, digits, - (hyphen), . (dot), _ (underscore).']]);
}