1/*
2 * Copyright 2019, Andrew Lindesay <apl@lindesay.co.nz>.
3 *
4 * All rights reserved. Distributed under the terms of the MIT License.
5 */
6#ifndef USER_CREDENTIALS_H
7#define USER_CREDENTIALS_H
8
9
10#include <Archivable.h>
11#include <String.h>
12
13
14/*!	This object represents the tuple of the user's nickname (username) and
15	password.  It also carries a boolean that indicates if an authentication
16	with these credentials was successful or failed.
17*/
18
19class UserCredentials : public BArchivable {
20public:
21								UserCredentials(BMessage* from);
22								UserCredentials(const BString& nickname,
23									const BString& passwordClear);
24								UserCredentials(const UserCredentials& other);
25								UserCredentials();
26	virtual						~UserCredentials();
27
28			UserCredentials&	operator=(const UserCredentials& other);
29			bool				operator==(const UserCredentials& other) const;
30			bool				operator!=(const UserCredentials& other) const;
31
32	const	BString&			Nickname() const;
33	const	BString&			PasswordClear() const;
34	const	bool				IsSuccessful() const;
35	const	bool				IsValid() const;
36
37			void				SetNickname(const BString& value);
38			void				SetPasswordClear(const BString& value);
39			void				SetIsSuccessful(bool value);
40
41			status_t			Archive(BMessage* into, bool deep = true) const;
42private:
43			BString				fNickname;
44			BString				fPasswordClear;
45			bool				fIsSuccessful;
46};
47
48
49#endif // USER_CREDENTIALS_H
50