diff --git a/system/typemill/Controllers/ControllerApiSystemUsers.php b/system/typemill/Controllers/ControllerApiSystemUsers.php index 5ee4f5e..b7f4b33 100644 --- a/system/typemill/Controllers/ControllerApiSystemUsers.php +++ b/system/typemill/Controllers/ControllerApiSystemUsers.php @@ -23,7 +23,7 @@ class ControllerApiSystemUsers extends Controller { foreach($usernames as $username) { - if($validate->username(['username' => $username])) + if($validate->username(['username' => $username]) === true) { $existinguser = $user->setUser($username); if($existinguser) @@ -51,7 +51,7 @@ class ControllerApiSystemUsers extends Controller $validate = new Validation(); $valresult = $validate->emailsearch(['email' => $email]); - if($valresult) + if($valresult === true) { $usernames = $user->findUsersByEmail($email); diff --git a/system/typemill/Controllers/ControllerWebAuth.php b/system/typemill/Controllers/ControllerWebAuth.php index a7c06b7..07af29a 100644 --- a/system/typemill/Controllers/ControllerWebAuth.php +++ b/system/typemill/Controllers/ControllerWebAuth.php @@ -34,7 +34,7 @@ class ControllerWebAuth extends Controller $validation = new Validation(); # $settings = $this->c->get('settings'); - if($validation->signin($input)) + if($validation->signin($input) === true) { $user = new User(); diff --git a/system/typemill/Controllers/ControllerWebRecover.php b/system/typemill/Controllers/ControllerWebRecover.php index 58e0d1b..905d068 100644 --- a/system/typemill/Controllers/ControllerWebRecover.php +++ b/system/typemill/Controllers/ControllerWebRecover.php @@ -232,7 +232,7 @@ class ControllerWebRecover extends Controller $validation = new Validation(); - if(!$validation->recoverPassword($params)) + if($validation->recoverPassword($params) !== true) { if($securitylog) { diff --git a/system/typemill/Controllers/ControllerWebSetup.php b/system/typemill/Controllers/ControllerWebSetup.php index 6c57dfa..f9cfa4a 100644 --- a/system/typemill/Controllers/ControllerWebSetup.php +++ b/system/typemill/Controllers/ControllerWebSetup.php @@ -9,6 +9,7 @@ use Typemill\Models\StorageWrapper; use Typemill\Models\Validation; use Typemill\Models\User; use Typemill\Models\Settings; +use Typemill\Static\Translations; class ControllerWebSetup extends Controller { @@ -65,39 +66,49 @@ class ControllerWebSetup extends Controller $userroles = $this->c->get('acl')->getRoles(); # validate user - if($validate->newUser($params, $userroles)) + if($validate->newSetupUser($params, $userroles) !== true) { - $userdata = [ - 'username' => $params['username'], - 'email' => $params['email'], - 'userrole' => $params['userrole'], - 'password' => $params['password'] - ]; + $this->c->get('flash')->addMessage('error', Translations::translate('Please correct the errors in the form.')); - $user = new User(); - - # create initial user - $username = $user->createUser($userdata); - - if($username) - { - usleep(30000); - - $user->setUser($username); - - $user->login(); - - # create initial settings file - $settingsModel = new Settings(); - $settingsModel->createSettings(); - - $urlinfo = $this->c->get('urlinfo'); - $route = $urlinfo['baseurl'] . '/tm/system'; - - usleep(30000); - - return $response->withHeader('Location', $route)->withStatus(302); - } + return $response->withHeader('Location', $this->routeParser->urlFor('setup.show'))->withStatus(302); } + + $userdata = [ + 'username' => $params['username'], + 'email' => $params['email'], + 'userrole' => $params['userrole'], + 'password' => $params['password'] + ]; + + $user = new User(); + + # create initial user + $username = $user->createUser($userdata); + + if($username) + { + usleep(30000); + + $user->setUser($username); + + $user->login(); + + # create initial settings file + $settingsModel = new Settings(); + $settingsModel->createSettings(); + + $urlinfo = $this->c->get('urlinfo'); + $route = $urlinfo['baseurl'] . '/tm/system'; + + usleep(30000); + + $this->c->get('flash')->addMessage('error', Translations::translate('Account created. Please login with your username and password now.')); + + return $response->withHeader('Location', $route)->withStatus(302); + } + + $this->c->get('flash')->addMessage('error', Translations::translate('We could not create the user. Please check if the settings folde is writable.')); + + return $response->withHeader('Location', $this->routeParser->urlFor('setup.show'))->withStatus(302); } } \ No newline at end of file diff --git a/system/typemill/Middleware/AssetMiddleware.php b/system/typemill/Middleware/AssetMiddleware.php index 23f73e3..3d40632 100644 --- a/system/typemill/Middleware/AssetMiddleware.php +++ b/system/typemill/Middleware/AssetMiddleware.php @@ -3,9 +3,10 @@ namespace Typemill\Middleware; use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Server\RequestHandlerInterface as RequestHandler; -use Slim\Psr7\Response; +#use Slim\Psr7\Response; class AssetMiddleware implements MiddlewareInterface { @@ -34,8 +35,8 @@ class AssetMiddleware implements MiddlewareInterface # $this->container['view']['base_url'] = $uri->getBaseUrl(); # $this->container['view']['current_url'] = $uri->getPath(); - $response = $handler->handle($request); - - return $response; + $response = $handler->handle($request); + + return $response; } } \ No newline at end of file diff --git a/system/typemill/Models/Validation.php b/system/typemill/Models/Validation.php index 15cec97..0175d15 100644 --- a/system/typemill/Models/Validation.php +++ b/system/typemill/Models/Validation.php @@ -1,5 +1,5 @@ rule('required', ['username', 'email', 'password'])->message("required"); + $v->rule('alphaNum', 'username')->message("invalid characters"); + $v->rule('lengthBetween', 'password', 5, 40)->message("Length between 5 - 40"); + $v->rule('lengthBetween', 'username', 3, 20)->message("Length between 3 - 20"); + $v->rule('userAvailable', 'username')->message("User already exists"); + $v->rule('noHTML', 'firstname')->message(" contains HTML"); + $v->rule('lengthBetween', 'firstname', 2, 40); + $v->rule('noHTML', 'lastname')->message(" contains HTML"); + $v->rule('lengthBetween', 'lastname', 2, 40); + $v->rule('email', 'email')->message("e-mail is invalid"); + $v->rule('emailAvailable', 'email')->message("Email already taken"); + $v->rule('in', 'userrole', $userroles); + + if($v->validate()) + { + return true; + } + + if(isset($_SESSION)) + { + $_SESSION['errors'] = $v->errors(); + } + + return $v->errors(); + } + /** * validation for new user (in backoffice) @@ -341,7 +379,7 @@ class Validation return true; } - return false; + return $v->errors(); } public function emailsearch(array $params) @@ -357,7 +395,7 @@ class Validation return true; } - return false; + return $v->errors(); } public function newLicense(array $params) diff --git a/system/typemill/author/auth/setup.twig b/system/typemill/author/auth/setup.twig index 3ee1525..3a3c599 100644 --- a/system/typemill/author/auth/setup.twig +++ b/system/typemill/author/auth/setup.twig @@ -13,7 +13,7 @@
-
+
@@ -23,8 +23,8 @@ value="{{ old.username }}" class="form-control block w-full px-3 py-1.5 text-base font-normal text-gray-700 bg-white bg-clip-padding border border-solid border-gray-300 transition ease-in-out m-0 focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none" required> - {% if errors.signup_username %} - {{ errors.username|first }} + {% if errors.username %} + {{ errors.username|first }} {% endif %}
@@ -36,8 +36,8 @@ value="{{ old.email }}" class="form-control block w-full px-3 py-1.5 text-base font-normal text-gray-700 bg-white bg-clip-padding border border-solid border-gray-300 transition ease-in-out m-0 focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none" required> - {% if errors.signup_email %} - {{ errors.email|first }} + {% if errors.email %} + {{ errors.email|first }} {% endif %} @@ -50,7 +50,7 @@ class="form-control block w-full px-3 py-1.5 text-base font-normal text-gray-700 bg-white bg-clip-padding border border-solid border-gray-300 transition ease-in-out m-0 focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none" required> {% if errors.password %} - {{ errors.password|first }} + {{ errors.password|first }} {% endif %} diff --git a/system/typemill/author/css/output.css b/system/typemill/author/css/output.css index 9bf7403..f15e389 100644 --- a/system/typemill/author/css/output.css +++ b/system/typemill/author/css/output.css @@ -1626,6 +1626,10 @@ video { padding-left: 3rem; } +.pl-24 { + padding-left: 6rem; +} + .pr-1 { padding-right: 0.25rem; } @@ -1658,10 +1662,6 @@ video { padding-top: 0.75rem; } -.pl-24 { - padding-left: 6rem; -} - .text-left { text-align: left; } @@ -1769,6 +1769,11 @@ video { color: rgb(250 250 249 / var(--tw-text-opacity)); } +.text-rose-300 { + --tw-text-opacity: 1; + color: rgb(253 164 175 / var(--tw-text-opacity)); +} + .text-stone-400 { --tw-text-opacity: 1; color: rgb(168 162 158 / var(--tw-text-opacity));