Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_core.h"
00035 #include "../System/sharedptr.h"
00036 #include "security_identifier.h"
00037
00038 class CL_AccessControlList_Impl;
00039
00043 class CL_API_CORE CL_AccessControlList
00044 {
00047
00048 public:
00049 CL_AccessControlList();
00050
00051 ~CL_AccessControlList();
00052
00056
00057 public:
00058
00059 typedef unsigned int AccessMask;
00060
00064
00065 public:
00067 void add_access_allowed(const CL_SecurityIdentifier &sid, AccessMask access_mask);
00068
00070 void add_access_denied(const CL_SecurityIdentifier &sid, AccessMask access_mask);
00071
00073 void add_user_access_allowed(const CL_String &name, AccessMask access_mask);
00074
00076 void add_user_access_denied(const CL_String &name, AccessMask access_mask);
00077
00079 void add_group_access_allowed(const CL_String &name, AccessMask access_mask);
00080
00082 void add_group_access_denied(const CL_String &name, AccessMask access_mask);
00083
00085 void remove_access_allowed(const CL_SecurityIdentifier &sid);
00086
00088 void remove_access_denied(const CL_SecurityIdentifier &sid);
00089
00091 void remove_user_allowed(const CL_String &name);
00092
00094 void remove_user_denied(const CL_String &name);
00095
00097 void remove_group_allowed(const CL_String &name);
00098
00100 void remove_group_denied(const CL_String &name);
00101
00105
00106 private:
00107 CL_SharedPtr<CL_AccessControlList_Impl> impl;
00109 };
00110