xref: /haiku/src/add-ons/kernel/file_systems/netfs/server/UserSecurityContext.h (revision 5a1d355fdf2747f80f8c46e2539f844a0b813346)
1*5a1d355fSStephan Aßmus // UserSecurityContext.h
2*5a1d355fSStephan Aßmus 
3*5a1d355fSStephan Aßmus #ifndef NET_FS_USER_SECURITY_CONTEXT_H
4*5a1d355fSStephan Aßmus #define NET_FS_USER_SECURITY_CONTEXT_H
5*5a1d355fSStephan Aßmus 
6*5a1d355fSStephan Aßmus #include "Permissions.h"
7*5a1d355fSStephan Aßmus 
8*5a1d355fSStephan Aßmus #include <Node.h>
9*5a1d355fSStephan Aßmus 
10*5a1d355fSStephan Aßmus class User;
11*5a1d355fSStephan Aßmus 
12*5a1d355fSStephan Aßmus class UserSecurityContext {
13*5a1d355fSStephan Aßmus public:
14*5a1d355fSStephan Aßmus 								UserSecurityContext();
15*5a1d355fSStephan Aßmus 								~UserSecurityContext();
16*5a1d355fSStephan Aßmus 
17*5a1d355fSStephan Aßmus 			status_t			Init(User* user);
18*5a1d355fSStephan Aßmus 
19*5a1d355fSStephan Aßmus 			User*				GetUser() const;
20*5a1d355fSStephan Aßmus 
21*5a1d355fSStephan Aßmus 			status_t			AddNode(dev_t volumeID, ino_t nodeID,
22*5a1d355fSStephan Aßmus 									Permissions permissions);
23*5a1d355fSStephan Aßmus 
24*5a1d355fSStephan Aßmus 			Permissions			GetNodePermissions(dev_t volumeID,
25*5a1d355fSStephan Aßmus 									ino_t nodeID) const;
26*5a1d355fSStephan Aßmus 			Permissions			GetNodePermissions(const node_ref& ref) const;
27*5a1d355fSStephan Aßmus 			Permissions			GetNodePermissions(dev_t volumeID, ino_t nodeID,
28*5a1d355fSStephan Aßmus 									Permissions parentPermissions) const;
29*5a1d355fSStephan Aßmus 			Permissions			GetNodePermissions(const node_ref& ref,
30*5a1d355fSStephan Aßmus 									Permissions parentPermissions) const;
31*5a1d355fSStephan Aßmus 
32*5a1d355fSStephan Aßmus private:
33*5a1d355fSStephan Aßmus 			struct PermissionMap;
34*5a1d355fSStephan Aßmus 
35*5a1d355fSStephan Aßmus 			User*				fUser;
36*5a1d355fSStephan Aßmus 			PermissionMap*		fPermissions;
37*5a1d355fSStephan Aßmus };
38*5a1d355fSStephan Aßmus 
39*5a1d355fSStephan Aßmus #endif	// NET_FS_USER_SECURITY_CONTEXT_H
40