create-user.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. $username = $options['user'];
  17. if (!ctype_alnum($username)) {
  18. fail('FreshRSS error: invalid username “' . $username . '”');
  19. }
  20. $usernames = listUsers();
  21. if (preg_grep("/^$username$/i", $usernames)) {
  22. fail('FreshRSS error: username already taken “' . $username . '”');
  23. }
  24. echo 'FreshRSS creating user “', $username, "”…\n";
  25. $ok = FreshRSS_user_Controller::createUser($username,
  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. if (!$ok) {
  33. fail('FreshRSS could not create user!');
  34. }
  35. invalidateHttpCache(FreshRSS_Context::$system_conf->default_user);
  36. accessRights();
  37. done($ok);