create-user.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. ));
  12. if (empty($options['user'])) {
  13. fail('Usage: ' . basename(__FILE__) . " --user=username --password='password' --api-password='api_password'" .
  14. " --language=en --email=user@example.net --token='longRandomString'");
  15. }
  16. $new_user_name = $options['user'];
  17. if (!ctype_alnum($new_user_name)) {
  18. fail('FreshRSS error: invalid username “' . $new_user_name . '”');
  19. }
  20. $usernames = listUsers();
  21. if (preg_grep("/^$new_user_name$/i", $usernames)) {
  22. fail('FreshRSS error: username already taken “' . $new_user_name . '”');
  23. }
  24. echo 'FreshRSS creating user “', $new_user_name, "”…\n";
  25. $ok = FreshRSS_user_Controller::createUser($new_user_name,
  26. empty($options['password']) ? '' : $options['password'],
  27. empty($options['api-password']) ? '' : $options['api-password'],
  28. array(
  29. 'language' => empty($options['language']) ? '' : $options['language'],
  30. 'token' => empty($options['token']) ? '' : $options['token'],
  31. ));
  32. invalidateHttpCache(FreshRSS_Context::$system_conf->default_user);
  33. echo 'Result: ', ($ok ? 'success' : 'fail'), ".\n";
  34. exit($ok ? 0 : 1);