#!/usr/bin/env php
<?php
/*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Control Yourself, Inc.
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2008, 2009, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-# Abort if called from a web server
-if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
- print "This script must be run from the command line\n";
- exit(1);
-}
+define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
-ini_set("max_execution_time", "0");
-ini_set("max_input_time", "0");
-set_time_limit(0);
-mb_internal_encoding('UTF-8');
+$helptext = <<<END_OF_PASSWORD_HELP
+setpassword.php <username> <password>
-define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
-define('LACONICA', true);
+Sets the password of user with name <username> to <password>
-require_once(INSTALLDIR . '/lib/common.php');
+END_OF_PASSWORD_HELP;
-if ($argc != 3) {
- print "USAGE: setpassword.php <username> <password>\n";
- print "Sets the password of user with name <username> to <password>\n";
- exit(1);
+require_once INSTALLDIR.'/scripts/commandline.inc.php';
+
+if (count($args) < 2) {
+ show_help();
}
-$nickname = $argv[1];
-$password = $argv[2];
+$nickname = $args[0];
+$password = $args[1];
if (mb_strlen($password) < 6) {
print "Password must be 6 characters or more.\n";
exit(1);
}
-$user = User::staticGet('nickname', $nickname);
-
-if (!$user) {
- print "No such user '$nickname'.\n";
+try {
+ $user = User::getByNickname($nickname);
+ $user->setPassword($password);
+} catch (NoSuchUserException $e) {
+ print $e->getMessage();
exit(1);
}
-$original = clone($user);
-
-$user->password = common_munge_password($password, $user->id);
-
-if (!$user->update($original)) {
- print "Error updating user '$nickname'.\n";
- exit(1);
-} else {
- print "Password for user '$nickname' updated.\n";
- exit(0);
-}
+print "Password for user '$nickname' updated.\n";