1 /* 2 * Copyright (C) 1996-2021 The Squid Software Foundation and contributors 3 * 4 * Squid software is distributed under GPLv2+ license and includes 5 * contributions from numerous individuals and organizations. 6 * Please see the COPYING and CONTRIBUTORS files for details. 7 */ 8 9 #ifndef SQUID_ACLUSERDATA_H 10 #define SQUID_ACLUSERDATA_H 11 12 #include "acl/Acl.h" 13 #include "acl/Data.h" 14 #include "sbuf/SBuf.h" 15 16 #include <set> 17 18 class ACLUserData : public ACLData<char const *> 19 { 20 MEMPROXY_CLASS(ACLUserData); 21 22 public: ~ACLUserData()23 virtual ~ACLUserData() {} 24 ACLUserData(); 25 bool match(char const *user); 26 virtual SBufList dump() const; 27 void parse(); 28 virtual const Acl::ParameterFlags &supportedFlags() const; 29 bool empty() const; 30 virtual ACLData<char const *> *clone() const; 31 32 private: 33 34 typedef std::set<SBuf,bool(*)(const SBuf&, const SBuf&)> UserDataNames_t; 35 UserDataNames_t userDataNames; 36 37 struct { 38 bool case_insensitive; 39 bool required; 40 } flags; 41 42 }; 43 44 #endif /* SQUID_ACLUSERDATA_H */ 45 46