NEC mBaaS Embedded SDK  6.2.0
 全て クラス ネームスペース ファイル 関数 変数 列挙型 列挙型の値
nb_acl_base.h
説明を見る。
1 /*
2  * COPYRIGHT (C) 2017 NEC CORPORATION
3  *
4  * ALL RIGHTS RESERVED BY NEC CORPORATION, THIS PROGRAM
5  * MUST BE USED SOLELY FOR THE PURPOSE FOR WHICH IT WAS
6  * FURNISHED BY NEC CORPORATION, NO PART OF THIS PROGRAM
7  * MAY BE REPRODUCED OR DISCLOSED TO OTHERS, IN ANY FORM
8  * WITHOUT THE PRIOR WRITTEN PERMISSION OF NEC CORPORATION.
9  *
10  * NEC CONFIDENTIAL AND PROPRIETARY
11  */
12 
13 #ifndef NECBAAS_NBACLBASE_H
14 #define NECBAAS_NBACLBASE_H
15 
16 #include <string>
17 #include <list>
19 #include "necbaas/nb_json_object.h"
20 
21 namespace necbaas {
22 
29 class NbAclBase {
30  public:
34  NbAclBase();
35 
39  virtual ~NbAclBase();
40 
47  void AddEntry(NbAclPermission permission, const std::string &entry);
48 
53  const std::list<std::string> &GetCreate() const;
54 
59  const std::list<std::string> &GetDelete() const;
60 
65  const std::list<std::string> &GetRead() const;
66 
71  const std::list<std::string> &GetUpdate() const;
72 
77  const std::list<std::string> &GetWrite() const;
78 
85  void RemoveEntry(NbAclPermission permission, const std::string &entry);
86 
93  void SetCreate(const std::list<std::string> &create);
94 
101  void SetDelete(const std::list<std::string> &del);
102 
109  void SetRead(const std::list<std::string> &read);
110 
117  void SetUpdate(const std::list<std::string> &update);
118 
125  void SetWrite(const std::list<std::string> &write);
126 
131  virtual void SetJson(NbJsonObject json);
132 
137  virtual NbJsonObject ToJsonObject() const;
138 
143  virtual std::string ToJsonString() const;
144 
145  protected:
153  void SortUnique(std::list<std::string> *acl_list);
154 
164  void SetEntries(const std::list<std::string> &entries, std::list<std::string> *acl_list);
165 
173  virtual std::list<std::string> &GetListByPermission(NbAclPermission permission);
174 
175  private:
176  // 重複チェックするためにlistを使用
177  std::list<std::string> read_;
178  std::list<std::string> write_;
179  std::list<std::string> create_;
180  std::list<std::string> update_;
181  std::list<std::string> delete_;
182 };
183 } // namespace necbaas
184 
185 #endif // NECBAAS_NBACLBASE_H
virtual NbJsonObject ToJsonObject() const
Jsonオブジェクトに変換する.
void RemoveEntry(NbAclPermission permission, const std::string &entry)
対象権限からユーザIDを削除する.
virtual void SetJson(NbJsonObject json)
JsonからACLをセットする.
void SetRead(const std::list< std::string > &read)
readを許可するユーザ・グループの一覧を設定する.
const std::list< std::string > & GetWrite() const
writeが許可されたユーザ・グループの一覧を取得する.
const std::list< std::string > & GetCreate() const
createが許可されたユーザ・グループの一覧を取得する.
void SetDelete(const std::list< std::string > &del)
deleteを許可するユーザ・グループの一覧を設定する.
virtual std::string ToJsonString() const
Json文字列に変換する.
void SortUnique(std::list< std::string > *acl_list)
[内部処理用]
Jsonオブジェクト.
Definition: nb_json_object.h:34
virtual ~NbAclBase()
デストラクタ.
NbAclBase()
コンストラクタ.
void SetEntries(const std::list< std::string > &entries, std::list< std::string > *acl_list)
[内部処理用]
void AddEntry(NbAclPermission permission, const std::string &entry)
対象権限にユーザ・グループを追加する.
NbAclPermission
ACLで使用する権限種別の列挙型.
Definition: nb_acl_permission.h:21
ACL基底クラス.
Definition: nb_acl_base.h:29
virtual std::list< std::string > & GetListByPermission(NbAclPermission permission)
[内部処理用]
void SetUpdate(const std::list< std::string > &update)
updateを許可するユーザ・グループの一覧を設定する.
void SetCreate(const std::list< std::string > &create)
createを許可するユーザ・グループの一覧を設定する.
const std::list< std::string > & GetUpdate() const
updateが許可されたユーザ・グループの一覧を取得する.
const std::list< std::string > & GetRead() const
readが許可されたユーザ・グループの一覧を取得する.
void SetWrite(const std::list< std::string > &write)
writeを許可するユーザ・グループの一覧を設定する.
const std::list< std::string > & GetDelete() const
deleteが許可されたユーザ・グループの一覧を取得する.