xref: /haiku/headers/os/package/User.h (revision 9f81ca838ce7b92b5689e57d3f86765db4705a7b)
10f4e11e7SIngo Weinhold /*
20f4e11e7SIngo Weinhold  * Copyright 2013, Haiku, Inc.
30f4e11e7SIngo Weinhold  * Distributed under the terms of the MIT License.
40f4e11e7SIngo Weinhold  */
50f4e11e7SIngo Weinhold #ifndef _PACKAGE__USER_H_
60f4e11e7SIngo Weinhold #define _PACKAGE__USER_H_
70f4e11e7SIngo Weinhold 
80f4e11e7SIngo Weinhold 
90f4e11e7SIngo Weinhold #include <String.h>
100f4e11e7SIngo Weinhold #include <StringList.h>
110f4e11e7SIngo Weinhold 
120f4e11e7SIngo Weinhold 
130f4e11e7SIngo Weinhold namespace BPackageKit {
140f4e11e7SIngo Weinhold 
150f4e11e7SIngo Weinhold 
16*56b43ecaSIngo Weinhold namespace BHPKG {
17*56b43ecaSIngo Weinhold 	struct BUserData;
18*56b43ecaSIngo Weinhold }
19*56b43ecaSIngo Weinhold 
20*56b43ecaSIngo Weinhold 
210f4e11e7SIngo Weinhold class BUser {
220f4e11e7SIngo Weinhold public:
230f4e11e7SIngo Weinhold 								BUser();
24*56b43ecaSIngo Weinhold 								BUser(const BHPKG::BUserData& userData);
250f4e11e7SIngo Weinhold 								BUser(const BString& name,
260f4e11e7SIngo Weinhold 									const BString& realName,
270f4e11e7SIngo Weinhold 									const BString& home, const BString& shell,
280f4e11e7SIngo Weinhold 									const BStringList& groups);
290f4e11e7SIngo Weinhold 								~BUser();
300f4e11e7SIngo Weinhold 
310f4e11e7SIngo Weinhold 			status_t			InitCheck() const;
320f4e11e7SIngo Weinhold 
330f4e11e7SIngo Weinhold 			const BString&		Name() const;
340f4e11e7SIngo Weinhold 			const BString&		RealName() const;
350f4e11e7SIngo Weinhold 			const BString&		Home() const;
360f4e11e7SIngo Weinhold 			const BString&		Shell() const;
370f4e11e7SIngo Weinhold 			const BStringList&	Groups() const;
380f4e11e7SIngo Weinhold 
390f4e11e7SIngo Weinhold 			status_t			SetTo(const BString& name,
400f4e11e7SIngo Weinhold 									const BString& realName,
410f4e11e7SIngo Weinhold 									const BString& home, const BString& shell,
420f4e11e7SIngo Weinhold 									const BStringList& groups);
430f4e11e7SIngo Weinhold 
440f4e11e7SIngo Weinhold 	static	bool				IsValidUserName(const char* name);
450f4e11e7SIngo Weinhold 
460f4e11e7SIngo Weinhold private:
470f4e11e7SIngo Weinhold 			BString				fName;
480f4e11e7SIngo Weinhold 			BString				fRealName;
490f4e11e7SIngo Weinhold 			BString				fHome;
500f4e11e7SIngo Weinhold 			BString				fShell;
510f4e11e7SIngo Weinhold 			BStringList			fGroups;
520f4e11e7SIngo Weinhold };
530f4e11e7SIngo Weinhold 
540f4e11e7SIngo Weinhold 
550f4e11e7SIngo Weinhold }	// namespace BPackageKit
560f4e11e7SIngo Weinhold 
570f4e11e7SIngo Weinhold 
580f4e11e7SIngo Weinhold #endif	// _PACKAGE__USER_H_
59