SetupController.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. try{ $checkFolder->checkPath('media'); }catch(\Exception $e){ $systemcheck['error'][] = $e->getMessage(); }
  19. $systemcheck = empty($systemcheck) ? false : $systemcheck;
  20. return $this->render($response, 'auth/setup.twig', array( 'messages' => $systemcheck ));
  21. }
  22. public function create($request, $response, $args)
  23. {
  24. if($request->isPost())
  25. {
  26. $params = $request->getParams();
  27. $validate = new Validation();
  28. $user = new User();
  29. /* set user as admin */
  30. $params['userrole'] = 'administrator';
  31. /* get userroles for validation */
  32. $userroles = $user->getUserroles();
  33. /* validate user */
  34. if($validate->newUser($params, $userroles))
  35. {
  36. $userdata = array('username' => $params['username'], 'email' => $params['email'], 'userrole' => $params['userrole'], 'password' => $params['password']);
  37. /* create initial user */
  38. $username = $user->createUser($userdata);
  39. if($username)
  40. {
  41. /* login user */
  42. $user->login($username);
  43. # create initial settings file
  44. \Typemill\Settings::createSettings();
  45. return $response->withRedirect($this->c->router->pathFor('setup.welcome'));
  46. }
  47. }
  48. $this->c->flash->addMessage('error', 'Please check your input and try again');
  49. return $response->withRedirect($this->c->router->pathFor('setup.show'));
  50. }
  51. }
  52. public function welcome($request, $response, $args)
  53. {
  54. /* store updated settings */
  55. \Typemill\Settings::updateSettings(array('welcome' => false));
  56. return $this->render($response, 'auth/welcome.twig', array());
  57. }
  58. }