dmlite  0.4
Authn.h
Go to the documentation of this file.
1 /// @file core/builtin/Authn.h
2 /// @brief User and group mapping using the system's ones.
3 /// @details This will be used by default when no other Authn
4 /// implementeation is loaded.
5 /// @author Alejandro Álvarez Ayllon <aalvarez@cern.ch>
6 #ifndef BUILTIN_AUTHN_H
7 #define BUILTIN_AUTHN_H
8 
9 #include <dmlite/cpp/authn.h>
10 
11 namespace dmlite {
12 
13  class BuiltInAuthn: public Authn {
14  public:
15  BuiltInAuthn(const std::string&);
16  ~BuiltInAuthn();
17 
18  std::string getImplId(void) const throw();
19 
21 
22  GroupInfo newGroup (const std::string& gname) throw (DmException);
23  GroupInfo getGroup (gid_t gid) throw (DmException);
24  GroupInfo getGroup (const std::string& groupName) throw (DmException);
25  GroupInfo getGroup (const std::string& key,
26  const boost::any& value) throw (DmException);
27  void updateGroup(const GroupInfo& group) throw (DmException);
28  void deleteGroup(const std::string& groupName) throw (DmException);
29 
30  UserInfo newUser (const std::string& uname) throw (DmException);
31  UserInfo getUser (const std::string& userName) throw (DmException);
32  UserInfo getUser (const std::string& userName,
33  gid_t* group) throw (DmException);
34  UserInfo getUser (const std::string& key,
35  const boost::any& value) throw (DmException);
36  void updateUser(const UserInfo& user) throw (DmException);
37  void deleteUser(const std::string& userName) throw (DmException);
38 
39  std::vector<GroupInfo> getGroups(void) throw (DmException);
40  std::vector<UserInfo> getUsers (void) throw (DmException);
41 
42  void getIdMap(const std::string& userName,
43  const std::vector<std::string>& groupNames,
44  UserInfo* user,
45  std::vector<GroupInfo>* groups) throw (DmException);
46  private:
47  std::string nobody_;
48  };
49 
51  public:
54 
55  void configure(const std::string& key, const std::string& value) throw (DmException);
56 
58 
59  private:
60  std::string nobody_;
61  };
62 
63 };
64 
65 #endif // BUILTIN_AUTHN_H