SetupController.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace Typemill\Controllers;
  3. use \Symfony\Component\Yaml\Yaml;
  4. use Typemill\Models\Validation;
  5. use Typemill\Models\User;
  6. use Typemill\Models\Write;
  7. class SetupController extends Controller
  8. {
  9. public function show($request, $response, $args)
  10. {
  11. /* make some checks befor you install */
  12. $checkFolder = new Write();
  13. $systemcheck = array();
  14. try{ $checkFolder->checkPath('settings'); }catch(\Exception $e){ $systemcheck['error'][] = $e->getMessage(); }
  15. try{ $checkFolder->checkPath('settings/users'); }catch(\Exception $e){ $systemcheck['error'][] = $e->getMessage(); }
  16. try{ $checkFolder->checkPath('content'); }catch(\Exception $e){ $systemcheck['error'][] = $e->getMessage(); }
  17. try{ $checkFolder->checkPath('cache'); }catch(\Exception $e){ $systemcheck['error'][] = $e->getMessage(); }
  18. $systemcheck = empty($systemcheck) ? false : $systemcheck;
  19. return $this->render($response, 'auth/setup.twig', array( 'messages' => $systemcheck ));
  20. }
  21. public function create($request, $response, $args)
  22. {
  23. if($request->isPost())
  24. {
  25. $params = $request->getParams();
  26. $validate = new Validation();
  27. $user = new User();
  28. /* set user as admin */
  29. $params['userrole'] = 'administrator';
  30. /* get userroles for validation */
  31. $userroles = $user->getUserroles();
  32. /* validate user */
  33. if($validate->newUser($params, $userroles))
  34. {
  35. $userdata = array('username' => $params['username'], 'email' => $params['email'], 'userrole' => $params['userrole'], 'password' => $params['password']);
  36. /* create initial user */
  37. $username = $user->createUser($userdata);
  38. if($username)
  39. {
  40. /* login user */
  41. $user->login($username);
  42. /* store updated settings */
  43. \Typemill\Settings::createSettings(array('setup' => false));
  44. return $response->withRedirect($this->c->router->pathFor('setup.welcome'));
  45. }
  46. }
  47. $this->c->flash->addMessage('error', 'Please check your input and try again');
  48. return $response->withRedirect($this->c->router->pathFor('setup.show'));
  49. }
  50. }
  51. public function welcome($request, $response, $args)
  52. {
  53. /* store updated settings */
  54. \Typemill\Settings::updateSettings(array('welcome' => false));
  55. return $this->render($response, 'auth/welcome.twig', array());
  56. }
  57. }