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