diff options
Diffstat (limited to 'tdepasswd/tdepasswd.cpp')
-rw-r--r-- | tdepasswd/tdepasswd.cpp | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/tdepasswd/tdepasswd.cpp b/tdepasswd/tdepasswd.cpp new file mode 100644 index 000000000..7df4aaf47 --- /dev/null +++ b/tdepasswd/tdepasswd.cpp @@ -0,0 +1,79 @@ +/* vi: ts=8 sts=4 sw=4 + * + * $Id$ + * + * This file is part of the KDE project, module tdesu. + * Copyright (C) 2000 Geert Jansen <jansen@kde.org> + */ + +#include <config.h> + +#include <kuniqueapplication.h> +#include <tdelocale.h> +#include <tdeaboutdata.h> +#include <tdecmdlineargs.h> +#include <tdemessagebox.h> +#include <kuser.h> +#include <kdebug.h> + +#include "passwd.h" +#include "passwddlg.h" + +static TDECmdLineOptions options[] = +{ + { "+[user]", I18N_NOOP("Change password of this user"), 0 }, + TDECmdLineLastOption +}; + + +int main(int argc, char **argv) +{ + TDEAboutData aboutData("tdepasswd", I18N_NOOP("TDE passwd"), + VERSION, I18N_NOOP("Changes a UNIX password."), + TDEAboutData::License_Artistic, "Copyright (c) 2000 Geert Jansen"); + aboutData.addAuthor("Geert Jansen", I18N_NOOP("Maintainer"), + "jansen@kde.org", "http://www.stack.nl/~geertj/"); + + TDECmdLineArgs::init(argc, argv, &aboutData); + TDECmdLineArgs::addCmdLineOptions(options); + KUniqueApplication::addCmdLineOptions(); + + + if (!KUniqueApplication::start()) { + kdDebug() << "tdepasswd is already running" << endl; + return 0; + } + + KUniqueApplication app; + + KUser ku; + TQCString user; + bool bRoot = ku.isSuperUser(); + TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs(); + + if (args->count()) + user = args->arg(0); + + /* You must be able to run "tdepasswd loginName" */ + if ( !user.isEmpty() && user!=KUser().loginName().utf8() && !bRoot) + { + KMessageBox::sorry(0, i18n("You need to be root to change the password of other users.")); + return 0; + } + + TQCString oldpass; + if (!bRoot) + { + int result = TDEpasswd1Dialog::getPassword(oldpass); + if (result != TDEpasswd1Dialog::Accepted) + return 0; + } + + TDEpasswd2Dialog *dlg = new TDEpasswd2Dialog(oldpass, user); + + + dlg->exec(); + + return 0; +} + |