create-user.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/php
  2. <?php
  3. require('_cli.php');
  4. $options = getopt('', array(
  5. 'user:',
  6. 'password:',
  7. 'api-password:',
  8. 'language:',
  9. 'email:',
  10. 'token:',
  11. 'no-default-feeds',
  12. ));
  13. if (empty($options['user'])) {
  14. fail('Usage: ' . basename(__FILE__) . " --user username ( --password 'password' --api-password 'api_password'" .
  15. " --language en --email user@example.net --token 'longRandomString --no-default-feeds' )");
  16. }
  17. $username = $options['user'];
  18. if (!FreshRSS_user_Controller::checkUsername($username)) {
  19. fail('FreshRSS error: invalid username “' . $username . '”! Must be matching ' . FreshRSS_user_Controller::USERNAME_PATTERN);
  20. }
  21. $usernames = listUsers();
  22. if (preg_grep("/^$username$/i", $usernames)) {
  23. fail('FreshRSS error: username already taken “' . $username . '”');
  24. }
  25. echo 'FreshRSS creating user “', $username, "”…\n";
  26. $ok = FreshRSS_user_Controller::createUser($username,
  27. empty($options['password']) ? '' : $options['password'],
  28. empty($options['api-password']) ? '' : $options['api-password'],
  29. array(
  30. 'language' => empty($options['language']) ? '' : $options['language'],
  31. 'token' => empty($options['token']) ? '' : $options['token'],
  32. ),
  33. !isset($options['no-default-feeds']));
  34. if (!$ok) {
  35. fail('FreshRSS could not create user!');
  36. }
  37. invalidateHttpCache(FreshRSS_Context::$system_conf->default_user);
  38. echo '• Remember to refresh the feeds of the user: ', $username , "\n",
  39. "\t", './cli/actualize-user.php --user ', $username, "\n";
  40. accessRights();
  41. done($ok);