summaryrefslogtreecommitdiffstats
path: root/tdepasswd/passwd.h
blob: 80c8fb359d6d6b73cf3bde8c63ddead6c2327c1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
 *
 * $Id$
 *
 * This file is part of the KDE project, module tdesu.
 * Copyright (C) 2000 Geert Jansen <jansen@kde.org>
 */

#ifndef __Passwd_h_Included__
#define __Passwd_h_Included__

#include <tqcstring.h>
#include <tdesu/process.h>

/**
 * A C++ API to passwd.
 */

class PasswdProcess
    : public PtyProcess
{
public:
    PasswdProcess(TQCString user=0);
    ~PasswdProcess();

    enum Errors { PasswdNotFound=1, PasswordIncorrect, PasswordNotGood };

    int checkCurrent(const TQString &oldpass);
    int exec(const char *oldpass, const char *newpass, int check=0);

    TQCString error() { return m_Error; }

private:
    bool isPrompt(TQCString line, const char *word=0L);
    int ConversePasswd(const char *oldpass, const char *newpass,
	    int check);

    TQCString m_User, m_Error;
    bool bOtherUser;
};


#endif // __Passwd_h_Included__