Astra Linux Directory Client Core API  1.7.0
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Макросы Группы Страницы
ALDObjects.h
См. документацию.
1 
6 #ifndef ALD_OBJECTS
7 #define ALD_OBJECTS
8 
9 #include "common.h"
10 #include "ALDCore.h"
11 #include "ALDCoreUtils.h"
12 #include "ALDLogProvider.h"
13 #include "ldap-wrapper.h"
14 #include <string>
15 #include <memory>
16 
17 using namespace std;
18 
19 namespace ALD
20 {
21 
27 #define ALD_INVALID_ID 0
29 
30 // ALD Object types
32 #define ALD_OT_DUMMY "ALD_DUMMY"
34 #define ALD_OT_DOMAIN "ALD_DOMAIN"
35 #define ALD_OT_USER "ALD_DOMAIN_USER"
36 #define ALD_OT_GROUP "ALD_DOMAIN_GROUP"
37 #define ALD_OT_TASK "ALD_TASK"
38 #define ALD_OT_EVTASK "ALD_EVTASK"
39 #define ALD_OT_POLICY "ALD_DOMAIN_POLICY"
40 #define ALD_OT_SERVICE "ALD_DOMAIN_SERVICE"
41 #define ALD_OT_SVCGROUP "ALD_DOMAIN_SERVICE_GROUP"
42 #define ALD_OT_HOST "ALD_HOST"
43 #define ALD_OT_HOSTGROUP "ALD_HOST_GROUP"
44 #define ALD_OT_ADMGROUP "ALD_DOMAIN_ADM_GROUP"
45 #define ALD_OT_LOG_CFG "ALD_DOMAIN_LOG_CFG"
46 #define ALD_OT_TD "ALD_TRUSTED_DOMAIN"
47 #define ALD_OT_DOCUMENT "ALD_DOCUMENT"
48 
50 // ALD save marks
52 #define ALD_PBK_HEAD "<<{ ALD Portable Backup File }>>"
53 
55 #define ALD_PBK_PREFIX "<<{ ALDObject: "
56 
58 #define ALD_PBK_SUFFIX ">>}"
59 
61 #define ALD_PBK_SIGN(type) string(ALD_PBK_PREFIX)+type
62 
63 // ALD save stages
65 #define ALD_SS_START "ALD_SS_START"
67 #define ALD_SS_POLICIES "ALD_SS_POLICIES"
68 #define ALD_SS_HOSTS "ALD_SS_HOSTS"
69 #define ALD_SS_HOSTGROUPS "ALD_SS_HOSTGROUPS"
70 #define ALD_SS_USERS "ALD_SS_USERS"
71 #define ALD_SS_GROUPS "ALD_SS_GROUPS"
72 #define ALD_SS_SERVICES "ALD_SS_SERVICES"
73 #define ALD_SS_SVCGROUPS "ALD_SS_SVCGROUPS"
74 #define ALD_SS_DOCUMENTS "ALD_SS_DOCUMENTS"
75 #define ALD_SS_ADMGROUP "ALD_SS_ADMGROUP"
76 #define ALD_SS_LOG_CFG "ALD_SS_LOGCFG"
77 #define ALD_SS_FINISH "ALD_SS_FINISH"
78 
85 };
86 
93 };
94 
101 };
102 
107 };
108 
110 typedef int ald_info_level;
111 
113 #define ALD_INFO_UNCHANGED -1
114 
116 #define ALD_INFO_DEFAULT 0
117 
119 #define ALD_OBJECT_ACTION(object, action) string(object)+":"+action
121 
122 #define ALD_OBJECT_ADDED "ADDED"
123 #define ALD_OBJECT_CK_REMOVAL "CHECK_REMOVAL"
124 #define ALD_OBJECT_DO_REMOVING "DO_REMOVING"
125 #define ALD_OBJECT_REMOVED "REMOVED"
126 #define ALD_OBJECT_MODIFIED "MODIFIED"
127 
133 {
134 protected:
137  string m_strName;
138  string m_strBase;
139  bool m_bValid;
140  bool m_bSystem;
141  string m_strOType;
145 
146  // abstract !!! must be overloaded in derived classes for saving specific fields
151  virtual void InternalSave(ostream &os, bool verbose = false) = 0;
152 
160  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line,
161  bool verbose = false);
162 
172  static aoLoadFieldStatus LoadField(istream &is, size_t &nline, string &line,
173  const string &field, string &value, bool fuzzy = false);
174 
183  static aoLoadFieldStatus LoadFields(istream &is, size_t &nline, string &line,
184  const string &field, ald_string_list &values);
185 
187 #define LOAD_FIELD(is, nline, line, field, value) {if(LoadField(is, nline, line, field, value) != aolfsLoaded) return aolsError;}
188 
190 #define LOAD_FIELDS(is, nline, line, field, values) {if(LoadFields(is, nline, line, field, values) == aolfsError) return aolsError;}
191 
192  // abstract !!! must be overloaded in derived classes, typically fill m_Entity,
193  // m_bValid must be set here if m_Entity is not used
201  virtual void InternalGet(string object, ald_info_level level, bool quiet = false) = 0;
202 
207  virtual bool ProcessEntity(bool quiet = false);
208 
210  virtual void EnsureInfoLevel(ald_info_level level);
211 
213  virtual void EnsureEntity();
214 
219  virtual void InternalRemove(bool force, void *extra = NULL);
220 
224  virtual void InternalCreate(void *extra = NULL);
225 
231  virtual void InternalUpdate(unsigned int setmask, ald_string_multimap &attrs, void *extra = NULL);
232 
233  // abstract !!! must be overloaded in derived classes, typically MSG_*_OBJECT is used
259  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail) = 0;
260 
268  virtual bool StartOperation(const string &object, aoOperation op, const string &arg,
269  const string &detail, bool force = false);
270 
277  virtual void CommitOperation(const string &object, aoOperation op, bool process = false, bool quiet = false);
278 
284  bool TriggerAction(const string &action, aoTriggerActionType atype, bool quiet = false);
285 public:
290  explicit CALDObject(const string &type, CALDConnectionPtr Conn);
291 
293  CALDConnectionPtr conn() const {return m_Conn;}
295  CALDLdapEntPtr entity() const {return m_Entity;}
297  ald_info_level infolevel() const {return m_InfoLevel;}
299  string const &name() const;
301  string const &base() const;
303  const string &otype() const {return m_strOType;}
305  bool IsValid() const {return m_bValid;}
307  virtual bool IsSystemObject() {return false;}
308 
310  virtual void Clear();
311 
312  // must be overloaded if some restriction exists
317  virtual bool CheckRemoval(bool quiet = false);
318 
323  virtual bool Refresh(ald_info_level level = ALD_INFO_UNCHANGED, bool quiet = false);
324 
329  virtual void Save(ostream &os, bool verbose = false);
330 
336  virtual void Load(istream &is, size_t &nline, bool verbose = false);
337 
341  virtual bool CheckConsistency(string &msg);
342 
349  virtual bool ValidateProperty(int property, const void *value, string *msg, bool quiet);
350 
351  // abstract !!! must be overloaded in derived classes, common structure:
365  virtual void Remove(bool force = false) = 0;
366 
367  // abstract !!! must be overloaded in derived classes, common structure
384  virtual bool Get(const string &oname, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false) = 0;
385 
387  virtual ~CALDObject();
388 };
389 
391 typedef shared_ptr<CALDObject> CALDObjPtr;
392 
394 #define ALD_SET_NAME 0x00001
396 #define ALD_SET_GID 0x00002
397 #define ALD_SET_DESC 0x00004
398 #define ALD_SET_MEMBERS 0x00008
399 #define ALD_SET_UID 0x00010
400 #define ALD_SET_HOME 0x00020
401 #define ALD_SET_SHELL 0x00040
402 #define ALD_SET_FULL_NAME 0x00080
403 #define ALD_SET_GECOS 0x00100
404 #define ALD_SET_POLICY 0x00200
405 #define ALD_SET_PWCHANGE 0x00400
406 #define ALD_SET_HOME_TYPE 0x00800
407 #define ALD_SET_CAPS 0x01000
408 #define ALD_SET_STATE 0x02000
409 #define ALD_SET_HOME_SRV 0x04000
410 #define ALD_SET_LGROUPS 0x08000
411 #define ALD_SET_FLAGS 0x10000
412 #define ALD_CLR_FAILCNT 0x20000
413 
416 typedef unsigned int ald_user_caps;
417 
419 #define ALD_CAP_ADMIN 0x80000000
421 #define ALD_CAP_LOCKED 0x40000000
422 #define ALD_CAP_USER 0x0
423 #define ALD_CAP_HOST_ADDER 0x1
424 #define ALD_CAP_ALL_HOST_ADDER 0x2
425 #define ALD_CAP_ADM_USER 0x4
426 #define ALD_CAP_LOGIN_MASK (ALD_CAP_ADMIN | ALD_CAP_HOST_ADDER | ALD_CAP_ALL_HOST_ADDER | ALD_CAP_ADM_USER)
427 #define ALD_CAP_FULL_MASK (ALD_CAP_USER | ALD_CAP_ADMIN | ALD_CAP_LOCKED | \
428  ALD_CAP_HOST_ADDER | ALD_CAP_ALL_HOST_ADDER | ALD_CAP_ADM_USER)
429 
432 #define ALD_USER_INFO_0 0
435 #define ALD_USER_INFO_1 1
437 #define ALD_USER_INFO_2 2
439 #define ALD_USER_INFO_3 3
441 #define ALD_USER_INFO_4 4
443 
446 #define ALD_USER_PROP_NAME 0 // ALD_SET_NAME
448 #define ALD_USER_PROP_UID 1 // ALD_SET_UID
449 #define ALD_USER_PROP_GID 2 // ALD_SET_GID
450 #define ALD_USER_PROP_CAPS 3 // ALD_SET_CAPS
451 #define ALD_USER_PROP_HOME 4 // ALD_SET_HOME
452 #define ALD_USER_PROP_HOMETYPE 5 // ALD_SET_HOME_TYPE
453 #define ALD_USER_PROP_GECOS 6 // ALD_SET_GECOS
454 #define ALD_USER_PROP_SHELL 7 // ALD_SET_SHELL
455 #define ALD_USER_PROP_DESC 8 // ALD_SET_DESC
456 #define ALD_USER_PROP_FULLNAME 9 // ALD_SET_FULL_NAME
457 #define ALD_USER_PROP_POLICY 10 // ALD_SET_POLICY
458 #define ALD_USER_PROP_HOMESRV 11 // ALD_SET_HOME_SRV
459 #define ALD_USER_PROP_LGROUPS 12 // ALD_SET_LGROUPS
460 
465 class CALDUser: public CALDObject
466 {
467 protected:
469  string m_strUID;
470  uid_t m_UID;
471  string m_strGID;
472  gid_t m_GID;
474 
475  virtual void InternalSave(ostream &os, bool verbose = false);
476  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
477  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
478  virtual void EnsureEntity();
479  virtual bool ProcessEntity(bool quiet = false);
480  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
481  virtual void InternalRemove(bool force, void *extra = NULL);
482  virtual void InternalCreate(void *extra = NULL);
483  virtual void InternalUpdate(unsigned int setmask, ald_string_multimap& attrs, void *extra);
484 public:
488  explicit CALDUser(CALDConnectionPtr Conn);
490  string const &strUID();
492  uid_t uid();
494  string const &strGID();
496  gid_t gid();
498  ald_user_caps caps();
500  ald_linux_caps linuxCaps();
501 
503  bool IsAdm();
505  bool IsHostAdder();
506  bool IsAllHostAdder();
507  bool IsAdmUser();
508  bool IsLocked();
509  bool IsFailLocked();
510  bool CanLogin();
512 
516  void AllowedHosts(ald_string_list &hostlist);
517 
521  void AllowedHostGroups(ald_string_list &hgrouplist);
522 
524  string home();
526  string hometype();
528  string homeserver();
530  string gecos();
532  string shell();
533 
535  string desc();
537  string policy();
539  string pgroup();
541  void sgroups(ald_string_list &sgrouplist);
543  void lgroups(ald_string_list &lgrouplist);
545  string fullname();
547  CALDKrbPrincipalPtr princ();
549  unsigned int miclevel();
550  virtual void Clear();
552  virtual void Create(const string &newname, const string &newpwd, const string &newhometype,
553  const string &newhome, const string &newhomesrv, const string &newshell,
554  const string &newgecos, const string &newdesc, const string &newfull_name,
555  const string &newpolicy, const string &newlgroups, gid_t newgid,
556  uid_t newuid, bool needpwchange = false);
557  virtual bool Get(const string &user, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
559  virtual void Update(unsigned int setmask, const string &newhometype, const string &newhome,
560  const string &newhomesrv, const string &newshell, const string &newgecos,
561  const string &newdesc, const string &newfull_name, const string &newpolicy,
562  const string &newlgroups, gid_t newgid, uid_t newuid, bool needpwchange);
564  virtual void ChangePwd(const string &pwd);
565  virtual void Remove(bool force = false);
567  void SetCaps(ald_user_caps newcaps);
569  void SetLinuxCaps(ald_linux_caps newcaps);
571  void SetAllowedHosts(const ald_string_list &hosts, const ald_string_list &hgroups);
573  void SetMICLevel(unsigned int level);
575  void SetPhoto(const char* buff, unsigned long len);
577  void* GetPhoto(unsigned long &len); // result must be freed
578  virtual bool CheckConsistency(string &msg);
579  virtual bool ValidateProperty(int property, const void *value, string *msg, bool quiet);
580  virtual ~CALDUser();
581 };
582 
584 typedef shared_ptr<CALDUser> CALDUserPtr;
585 
587 #define ALD_GROUP_INFO_0 0
590 #define ALD_GROUP_INFO_1 1
592 
595 #define ALD_GROUP_PROP_NAME 0 // ALD_SET_NAME
597 #define ALD_GROUP_PROP_GID 1 // ALD_SET_GID
598 #define ALD_GROUP_PROP_MEMBER 2 // ALD_SET_MEMBERS
599 #define ALD_GROUP_PROP_DESC 3 // ALD_SET_DESC
600 
605 class CALDGroup: public CALDObject
606 {
607 protected:
608  string m_strGID;
609  gid_t m_GID;
610 
611  virtual void InternalSave(ostream &os, bool verbose = false);
612  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
613  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
614  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
615  virtual bool ProcessEntity(bool quiet = false);
616  virtual void InternalUpdate(unsigned int setmask, ald_string_multimap& attrs, void *extra);
617 public:
619  explicit CALDGroup(CALDConnectionPtr Conn);
620 
622  gid_t gid();
624  string strGID();
625 
627  string desc();
629  void members(ald_string_list &memlist);
631  void pmembers(ald_string_list &pmemlist);
633  bool empty();
634  virtual void Clear();
636  virtual void Create(const string &newname, const string &newdesc, const ald_string_list &newusers, gid_t newgid);
637  virtual bool Get(const string &group, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
639  virtual void Update(unsigned int setmask, const string &newname, gid_t newgid,
640  const string &newdesc, const ald_string_list &newusers);
641  virtual bool CheckRemoval(bool quiet = false);
642  virtual void Remove(bool force = false);
644  void AddMember(const string &user);
646  void RmMember(const string &user);
647  virtual bool ValidateProperty(int property, const void *value, string *msg, bool quiet);
648  virtual bool IsSystemObject();
649  virtual ~CALDGroup();
650 };
651 
653 typedef shared_ptr<CALDGroup> CALDGroupPtr;
654 
656 typedef int ald_task_status;
657 
659 #define ALD_TASK_STATUS_PENDING 0
661 #define ALD_TASK_STATUS_OK 1
662 #define ALD_TASK_STATUS_ERROR -1
663 
666 #define ALD_TASK_STATUS_FILTER_PENDING 0x01
668 #define ALD_TASK_STATUS_FILTER_OK 0x02
669 #define ALD_TASK_STATUS_FILTER_ERROR 0x04
670 #define ALD_TASK_STATUS_FILTER_ALL 0x07
671 
674 #define ALD_TASK_INFO_1 1
677 #define ALD_TASK_INFO_2 2
679 
684 class CALDTask: public CALDObject
685 {
686 protected:
687  string m_strType;
689 
690  virtual void InternalSave(ostream &os, bool verbose = false){/* not saved ? */}
691  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
692  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
693  virtual bool ProcessEntity(bool quiet = false);
694 public:
696  explicit CALDTask(CALDConnectionPtr Conn);
698  string const &id() const;
700  string const &type() const;
702  string timestamp();
704  string err() const;
706  string data();
708  ald_task_status status() const;
710  string strStatus() const;
712  virtual void Create(unsigned int ID, const string &TaskType, const string &TaskData);
713  virtual void Clear();
714  virtual bool Get(const string &ID, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
715  virtual void Remove(bool force = false);
717  virtual void SetOkState();
719  virtual void SetErrorState(const string &e);
720  virtual ~CALDTask();
721 };
722 
724 typedef shared_ptr<CALDTask> CALDTaskPtr;
725 
729 class CALDEvTask: public CALDTask
730 {
731 protected:
732  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
733 public:
735  explicit CALDEvTask(CALDConnectionPtr Conn);
737  virtual void Create(unsigned int ID, const string &TaskType, const string &TaskData);
738  virtual bool Get(const string &ID, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
739  virtual void Remove(bool force = false);
740  virtual void SetOkState();
741  virtual void SetErrorState(const string &e);
742  virtual ~CALDEvTask();
743 };
744 
746 typedef shared_ptr<CALDEvTask> CALDEvTaskPtr;
747 
748 // Policy properties ALD_KRB_* from krb5-wrapper.h
749 // setmask ALD_KRB_* from krb5-wrapper.h
750 
754 class CALDPolicy: public CALDObject
755 {
756 protected:
757  unsigned int m_MinLife;
758  unsigned int m_MaxLife;
759  unsigned int m_MinLength;
760  unsigned int m_MinClasses;
761  unsigned int m_HistoryNum;
763 
764  virtual void InternalSave(ostream &os, bool verbose = false);
765  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
766  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
767  virtual void EnsureEntity();
768  virtual bool ProcessEntity(bool quiet = false);
769  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
770  virtual void InternalRemove(bool force, void *extra = NULL);
771  virtual void InternalCreate(void *extra = NULL);
772  virtual void InternalUpdate(unsigned int setmask, ald_string_multimap &attrs, void *extra = NULL);
773 public:
775  CALDKrbPolicyPtr krbpolicy() const;
777  unsigned int min_life() const;
779  unsigned int max_life() const;
781  unsigned int min_length() const;
783  unsigned int min_classes() const;
785  unsigned int history_num() const;
787  unsigned int max_fail() const;
789  unsigned int failcnt_interval() const;
791  unsigned int lockout_duration() const;
793  void users(ald_string_list &userlist);
795  explicit CALDPolicy(CALDConnectionPtr Conn);
796  virtual void Clear();
798  virtual void Create(const string &newname, unsigned int newminlife,
799  unsigned int newmaxlife, unsigned int newminlength,
800  unsigned int newminclasses, unsigned int newhistorynum,
801  unsigned int newmaxfail, unsigned int newfailcntinterval,
802  unsigned int newlockoutduration);
803  virtual bool Get(const string &policy, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
805  virtual void Update(unsigned int setmask, unsigned int newminlife,
806  unsigned int newmaxlife, unsigned int newminlength,
807  unsigned int newminclasses, unsigned int newhistorynum,
808  unsigned int newmaxfail, unsigned int newfailcntinterval,
809  unsigned int newlockoutduration);
810  virtual bool CheckRemoval(bool quiet = false);
811  virtual void Remove(bool force = false);
812  virtual bool CheckConsistency(string &msg);
813  virtual void Recreate(const string &polname);
814  virtual bool IsSystemObject();
815 
816  virtual ~CALDPolicy();
817 };
818 
820 typedef shared_ptr<CALDPolicy> CALDPolicyPtr;
821 
825 class CALDService: public CALDObject
826 {
827 protected:
829 
830  virtual void InternalSave(ostream &os, bool verbose = false);
831  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
832  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
833  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
834  virtual void InternalCreate(void *extra = NULL);
835  virtual void EnsureEntity();
836  virtual bool ProcessEntity(bool quiet = false);
837  virtual void InternalRemove(bool force, void *extra = NULL);
838 public:
840  explicit CALDService(CALDConnectionPtr Conn);
842  CALDKrbPrincipalPtr princ() const {return m_krbPrinc;}
843  virtual void Clear();
845  virtual void Create(const string &newname);
846  virtual bool Get(const string &service, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
848  void sgroups(ald_string_list &svcgrouplist);
849  virtual void Remove(bool force = false);
850  virtual ~CALDService();
851 };
852 
854 typedef shared_ptr<CALDService> CALDServicePtr;
855 
857 #define ALD_SGROUP_PROP_NAME 0
859 #define ALD_SGROUP_PROP_MEMBER 1
860 
866 {
867 protected:
868  virtual void InternalSave(ostream &os, bool verbose = false);
869  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
870  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
871  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
872  virtual bool ProcessEntity(bool quiet = false);
873 public:
875  explicit CALDSvcGroup(CALDConnectionPtr Conn);
877  void members(ald_string_list &memlist);
879  void services(ald_string_list &svclist);
880  virtual bool Get(const string &sgroup, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
882  void AddService(const string &service);
884  void RmService(const string &service);
885  virtual bool ValidateProperty(int property, const void *value, string *msg, bool quiet);
886  virtual bool CheckRemoval(bool quiet = false);
887  void Remove(bool force);
888  virtual ~CALDSvcGroup();
889 };
890 
892 typedef shared_ptr<CALDSvcGroup> CALDSvcGroupPtr;
893 
895 #define ALD_HGROUP_INFO_0 0
898 #define ALD_HGROUP_INFO_1 1
900 
903 #define ALD_HGROUP_PROP_NAME 0
905 #define ALD_HGROUP_PROP_HOST 1
906 #define ALD_HGROUP_PROP_DESC 2
907 
913 {
914 protected:
915  virtual void InternalSave(ostream &os, bool verbose = false);
916  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
917  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
918  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
919  virtual void InternalUpdate(unsigned int setmask, ald_string_multimap& attrs, void *extra);
920  virtual bool ProcessEntity(bool quiet = false);
921 public:
923  explicit CALDHostGroup(CALDConnectionPtr Conn);
924 
926  string desc();
928  void members(ald_string_list &memlist);
930  void hosts(ald_string_list &hlist);
932  virtual void Create(const string &newname, const string &newdesc);
933  virtual bool Get(const string &hgroup, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
935  virtual void Update(unsigned int setmask, const string &newname,
936  const string &newdesc, const ald_string_list &newhosts);
938  void AddHost(const string &host);
940  void RmHost(const string &host);
941  virtual bool IsSystemObject();
942  virtual void Remove(bool force = false);
943  virtual bool ValidateProperty(int property, const void *value, string *msg, bool quiet);
944  virtual ~CALDHostGroup();
945 };
946 
948 typedef shared_ptr<CALDHostGroup> CALDHostGroupPtr;
949 
951 #define ALD_HOST_INFO_0 0
954 #define ALD_HOST_INFO_1 1
956 
959 #define ALD_HOST_PROP_NAME 0
961 #define ALD_HOST_PROP_DESC 1
962 #define ALD_HOST_PROP_FLAGS 2
963 #define ALD_HOST_PROP_ID 3
964 
967 #define ALD_HOST_DC 'C'
969 #define ALD_HOST_PRIMARY 'P'
970 #define ALD_HOST_FS 'F'
971 #define ALD_HOST_DISABLED 'D'
972 
973 #define ALD_HOST_EMPTY "[]"
974 #define ALD_HOST_PDC "[PCF]"
975 #define ALD_HOST_BDC "[CF]"
976 #define ALD_OLD_SRV "[PCF]"
977 
982 class CALDHost: public CALDObject
983 {
984 protected:
985  string m_strFlags;
986  unsigned int m_serverID;
988 
989  virtual void InternalSave(ostream &os, bool verbose = false);
990  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
991  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
992  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
993  virtual void EnsureEntity();
994  virtual bool ProcessEntity(bool quiet = false);
995  virtual void InternalCreate(void *extra = NULL);
996  virtual void InternalRemove(bool force, void *extra = NULL);
997 public:
999  CALDKrbPrincipalPtr princ();
1000 
1002  explicit CALDHost(CALDConnectionPtr Conn);
1003 
1005  string desc();
1007  string const flags() const;
1009  unsigned int serverID();
1011  bool IsPDC();
1013  bool IsBDC();
1014  bool IsFS();
1015  bool IsDisabled();
1018  void hgroups(ald_string_list &hgrouplist);
1020  void hservices(ald_string_list &svclist);
1021  virtual void Clear();
1023  virtual void Create(const string &newhost, const string &newdesc);
1024  virtual bool Get(const string &host, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
1026  virtual void Update(const string &hostdesc);
1028  virtual void SetFlags(const string &newflags, unsigned int newID);
1029  virtual void Remove(bool force = false);
1030  virtual bool ValidateProperty(int property, const void *value, string *msg, bool quiet);
1031  virtual bool CheckRemoval(bool quiet = false);
1032  virtual ~CALDHost();
1033 };
1034 
1041 string ModHostFlags(const string &flags, char flag, bool op);
1042 
1044 typedef shared_ptr<CALDHost> CALDHostPtr;
1045 
1050 {
1051 protected:
1052  virtual void InternalSave(ostream &os, bool verbose = false);
1053  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
1054  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
1055  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
1056  virtual bool ProcessEntity(bool quiet = false);
1058  void GetLDAPMembers(ald_string_list &memblist);
1059 public:
1061  explicit CALDAdmGroup(CALDConnectionPtr Conn);
1063  void members(ald_string_list &userlist);
1065  bool IsMember(const string &user);
1066  virtual bool Get(const string &agroup, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
1068  void AddMember(const string &user);
1070  void RmMember(const string &user);
1071  virtual bool CheckRemoval(bool quiet = false);
1072  void Remove(bool force);
1073  virtual ~CALDAdmGroup();
1074 };
1075 
1077 typedef shared_ptr<CALDAdmGroup>CALDAdmGroupPtr;
1078 
1080 #define ALD_LOG_CFG_DEST 0
1082 #define ALD_LOG_CFG_TPL 1
1083 
1089 {
1090 protected:
1091  string m_strLogDest;
1092  virtual void InternalSave(ostream &os, bool verbose = false);
1093  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
1094  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
1095  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
1096  virtual bool ProcessEntity(bool quiet = false);
1097 public:
1099  explicit CALDDomainLogCfg(CALDConnectionPtr Conn);
1101  string log_dest() const;
1103  void templates(ald_string_list &tpllist);
1105  string GetTemplate(const string &tpl_name);
1107  void ModTemplate(unsigned int setmask, const string &tpl_name, const string &suffix,
1108  const string &mode);
1110  void RmTemplate(const string &tpl_name);
1112  virtual void Update(const string &newdest);
1113  virtual bool Get(const string &oname = "", ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
1114  virtual bool ValidateProperty(int property, const void *value, string *msg, bool quiet);
1115  virtual bool CheckRemoval(bool quiet = false);
1116  void Remove(bool force);
1117  virtual ~CALDDomainLogCfg();
1118 };
1119 
1121 typedef shared_ptr<CALDDomainLogCfg>CALDDomainLogCfgPtr;
1122 
1124 // name, kdc, desc
1126 #define ALD_TD_INFO_0 0
1127 // krb
1128 #define ALD_TD_INFO_1 1
1129 
1132 #define ALD_TD_PROP_NAME 0
1134 #define ALD_TD_PROP_KDC 1 // ALD_SET_NAME
1135 #define ALD_TD_PROP_DESC 2 // ALD_SET_DESC
1136 #define ALD_TD_PROP_DIR 3 // ALD_SET_FLAGS
1137 
1140 #define ALD_TD_DISABLED 0
1142 #define ALD_TD_INBOUND 0x1 // Reserved
1143 #define ALD_TD_OUTBOUND 0x2 // Reserved
1144 #define ALD_TD_BIDIRECTIONAL (ALD_TD_INBOUND|ALD_TD_OUTBOUND) // default
1145 
1151 {
1152 protected:
1153  string m_strKDC;
1154  unsigned int m_uDirection;
1157  string m_strInTGT;
1158  string m_strOutTGT;
1159  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
1160  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
1161  virtual void InternalCreate(void *extra = NULL);
1162  virtual void InternalRemove(bool force, void *extra = NULL);
1163 
1164  virtual void InternalSave(ostream &os, bool verbose = false){ /*dont save, must be recreate */ }
1165  virtual void EnsureEntity();
1166  virtual bool ProcessEntity(bool quiet = false);
1167  void InternalSetName(const string &domain);
1168  virtual void InternalUpdate(unsigned int setmask, ald_string_multimap &attrs, void *extra = NULL);
1169 public:
1171  explicit CALDTrustedDomain(CALDConnectionPtr Conn);
1172 
1174  string desc();
1176  string const &kdc() const;
1178  string const &strInTGT();
1181  string const &strOutTGT();
1183  unsigned int direction() const;
1185  string strDirection() const;
1187  CALDKrbPrincipalPtr inTGT();
1189  CALDKrbPrincipalPtr outTGT();
1190  virtual void Clear();
1192  virtual void Create(const string &domain, const string &newkdc, const string &newdesc,
1193  unsigned int newdir, const string &newpwd);
1194  virtual bool Get(const string &domain, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
1196  virtual void Update(unsigned int setmask, const string &newkdc, const string &newdesc,
1197  unsigned int newdir);
1198  virtual void Remove(bool force = false);
1199  virtual bool ValidateProperty(int property, const void *value, string *msg, bool quiet);
1200  virtual ~CALDTrustedDomain();
1201 };
1202 
1204 typedef shared_ptr<CALDTrustedDomain> CALDTrustedDomainPtr;
1205 
1207 #define ALD_DOCUMENT_INFO_0 0
1210 #define ALD_DOCUMENT_INFO_1 1
1212 
1215 #define ALD_DOCUMENT_PROP_NAME 0 // ALD_SET_NAME
1217 #define ALD_DOCUMENT_PROP_VER 1 // ALD_SET_STATE
1218 #define ALD_DOCUMENT_PROP_TITLE 2 // ALD_SET_GECOS
1219 #define ALD_DOCUMENT_PROP_LOCATION 3 // ALD_SET_FULL_NAME
1220 #define ALD_DOCUMENT_PROP_DESC 4 // ALD_SET_DESC
1221 
1224 #define ALD_INTDOC_UID "ALD/DOMAIN/NextUID"
1226 #define ALD_INTDOC_GID "ALD/DOMAIN/NextGID"
1227 #define ALD_INTDOC_TID "ALD/DOMAIN/NextTID"
1228 #define ALD_INTDOC_EID "ALD/DOMAIN/NextEID"
1229 
1235 {
1236 protected:
1237  string m_strVersion;
1238  string m_strLocation;
1239 
1240  virtual void InternalSave(ostream &os, bool verbose = false);
1241  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
1242  virtual void InternalGet(string object, ald_info_level level, bool quiet = false);
1243  virtual bool ProcessEntity(bool quiet = false);
1244  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
1245 public:
1247  explicit CALDDocument(CALDConnectionPtr Conn);
1249  string const &version();
1251  string const &location();
1253  string title();
1254 
1256  string desc();
1258  bool IsInternal();
1259  virtual void Clear();
1261  virtual void Create(const string &newname, const string &newtitle, const string &newlocation,
1262  const string &newver, const string &newdesc);
1263  virtual bool Get(const string &name, ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
1265  virtual void Update(unsigned int setmask, const string &newtitle, const string &newlocation,
1266  const string &newver, const string &newdesc);
1267  virtual bool CheckRemoval(bool quiet = false);
1268  virtual void Remove(bool force = false);
1269  virtual bool ValidateProperty(int property, const void *value, string *msg, bool quiet);
1271  virtual void Upload(const string &filename, bool overwrite);
1273  virtual void Download(const string &filename = "");
1274  virtual ~CALDDocument();
1275 };
1276 
1278 typedef shared_ptr<CALDDocument> CALDDocumentPtr;
1279 
1281 #define ALD_DOMAIN_PROP_ORG 0 // ALD_SET_NAME
1283 #define ALD_DOMAIN_PROP_STATE 0 // ALD_SET_STATE
1284 #define ALD_DOMAIN_PROP_TEL 0 // ALD_SET_GECOS
1285 #define ALD_DOMAIN_PROP_ADDR 0 // ALD_SET_FULL_NAME
1286 #define ALD_DOMAIN_PROP_DESC 0 // ALD_SET_DESC
1287 
1292 class CALDDomain: public CALDObject
1293 {
1294 protected:
1295  string m_strVersion;
1296 
1297  virtual void InternalSave(ostream &os, bool verbose = false);
1298  virtual aoLoadStatus InternalLoad(istream &is, size_t &nline, string &line, bool verbose = false);
1299  virtual void InternalNotice(aoOperation op, const string &arg, const string &detail);
1300  virtual void InternalGet(string object, ald_info_level level, bool quiet = false){ /* nothing to do */}
1301 public:
1303  explicit CALDDomain(CALDConnectionPtr Conn);
1304 
1306  string const &version() const;
1307 
1309  string org();
1310 
1312  string state();
1313 
1315  string telephon();
1316 
1318  string address();
1319 
1321  string desc();
1322 
1323  virtual void Clear();
1324  virtual bool Get(const string &domain = "", ald_info_level level = ALD_INFO_DEFAULT, bool quiet = false);
1326  virtual void Update(unsigned int setmask, const string &neworg, const string &newstate,
1327  const string &newtel, const string &newaddr, const string &newdesc);
1328  // ----- groups
1332  void EnumerateGroups(ald_string_list &groups);
1334  gid_t NextGID(bool generate);
1335 
1342  void AddGroup(const string &group, const string &desc, const ald_string_list &users, gid_t gid = ALD_INVALID_ID);
1343 
1351  bool ResolveGroup(const string &group, string &groupname, string &gid, bool quiet = false);
1352 
1353  // ----- users
1357  void EnumerateUsers(ald_string_list &users);
1359  uid_t NextUID(bool generate);
1360 
1377  void AddUser(const string &user, const string &pwd, const string &hometype, const string &home,
1378  const string &homesrv, const string &shell, const string &gecos, const string &desc,
1379  const string &full_name, const string &policy, const string &lgroups,
1380  gid_t gid = ALD_INVALID_ID, uid_t uid = ALD_INVALID_ID, bool needpwchange = false);
1381 
1389  bool ResolveUser(const string &user, string &username, string &uid, bool quiet = false);
1390  // ------ privileged users
1394  void EnumeratePrivilegedUsers(ald_string_list &users);
1395 
1396  // ----- tasks
1401  void EnumerateTasks(ald_string_list &tasks, unsigned int status_filter);
1402 
1408  void EnumerateTasksSince(ald_string_list &tasks, unsigned int status_filter, time_t since);
1409 
1411  unsigned int NextTID(bool generate);
1412 
1417  string CreateTask(const string &TaskType, const string &TaskData);
1418 
1420  void RotateTasks();
1421 
1422  // ----- events
1426  void EnumerateEvents(ald_string_list &events);
1427 
1432  void EnumerateEventsSince(ald_string_list &events, time_t since);
1433 
1435  unsigned int NextEID(bool generate);
1436 
1441  string RaiseEvent(const string &TaskType, const string &TaskData);
1442 
1444  void RotateEvents();
1445 
1446  // ----- policies
1450  void EnumeratePolicies(ald_string_list &policies);
1451 
1453  void AddPolicy(const string &policy, unsigned int minlife, unsigned int maxlife, unsigned int minlength,
1454  unsigned int minclasses, unsigned int historynum, unsigned int newmaxfail,
1455  unsigned int newfailcntinterval, unsigned int newlockoutduration);
1456 
1462  bool ResolvePolicy(const string &policy, bool quiet = false);
1463 
1464  // ----- Services
1468  void EnumerateServices(ald_string_list &services);
1469 
1471  void AddService(const string &service);
1472 
1478  bool ResolveService(const string &service, bool quiet = false);
1479 
1480  // ----- Services groups
1484  void EnumerateServicesGroups(ald_string_list &sgroups);
1485 
1491  bool ResolveServicesGroup(const string &sgroup, bool quiet = false);
1492 
1493  // ----- Hosts
1494  // ----- Services groups
1498  void EnumerateHosts(ald_string_list &hosts);
1499 
1501  void AddHost(const string &host, const string &desc);
1502 
1509  bool ResolveHost(const string &host, string &hostname, bool quiet = false);
1510 
1511  // ----- Hosts groups
1515  void EnumerateHostsGroups(ald_string_list &hgroups);
1516 
1518  void AddHostsGroup(const string &hgroup, const string &hgroupdesc);
1519 
1525  bool ResolveHostsGroup(const string &hgroup, bool quiet = false);
1526 
1527  // ----- Tasks
1529  unsigned int taskHistory();
1530 
1532  void SetTaskHistory(unsigned int value);
1533 
1535  void UpdateServerTimestamp();
1536 
1538  string server_timestamp();
1539 
1540  // ----- FileServers
1544  void EnumerateFileServers(ald_string_list &fileservers);
1545 
1549  void EnumerateHomeServers(ald_string_list &homeservers);
1550 
1551  // --------------------
1555  void EnumerateALDServers(ald_string_list &servers);
1556 
1563  bool ResolveALDServer(string &host, unsigned int &server_id, bool quiet = false);
1564 
1565  // ----- TrustedDomains
1569  void EnumerateTrustedDomains(ald_string_list &realms);
1570 
1572  void AddTrustedDomain(const string &realm, const string &kdc, const string &desc,
1573  unsigned int newdir, const string &newpwd);
1574 
1581  bool ResolveTrustedDomain(const string &realm, string &kdc, bool quiet = false);
1582 
1583  // ----- Documents
1588  void EnumerateDocuments(ald_string_list &docs, bool internal_oly);
1589 
1591  void AddDocument(const string &name, const string &title, const string &location,
1592  const string &ver, const string &desc);
1593 
1595  void AddInternalDocument(const string &name, const string &ver, const string &desc);
1596 
1597  // serialization
1599  virtual void Save(const string &pbkfile, bool verbose = false);
1601  virtual void Save(ostream &os, bool verbose = false);
1603  virtual void Load(const string &pbkfile, bool verbose = false);
1605  virtual void Load(istream &is, const string &bkname, bool verbose = false);
1606 
1607  virtual bool CheckRemoval(bool quiet = false);
1608 
1609  void Remove(bool force);
1610 
1611  // ----- Common
1618  virtual bool RemoveObject(const string &otype, const string &oname, bool checkonly);
1619 
1620  virtual ~CALDDomain();
1621 };
1622 
1624 typedef shared_ptr<CALDDomain> CALDDomainPtr;
1625 
1630 
1638 bool UpdateServiceInKeytab(CALDConnectionPtr Conn, const string &keytab, const string &service, bool create);
1639 
1641 void ShowLdapOperInfo(CALDObject &object, ostream &out);
1642 
1648 void SetALDTimestamp(CALDObject &object, const string &tsname, time_t ts = 0); // 0 - now
1649 
1651 string GetALDTimestamp(CALDObject &object, const string &tsname);
1652 
1656  // cppcheck-suppress unusedStructMember
1657  bool quiet;
1658  // cppcheck-suppress unusedStructMember
1659  void *extra;
1660 };
1661 
1663 struct ald_pam_user_extra {
1667  string user;
1668  string home;
1669  string hometype;
1670  string homeserver;
1671  uid_t uid;
1672  gid_t gid;
1674  unsigned int ctrls;
1675  // cppcheck-suppress unusedStructMember
1676  void *pamh;
1677  // cppcheck-suppress unusedStructMember
1678  void *extra;
1679 };
1680 
1684  string otype;
1685  ostream *os;
1686  // cppcheck-suppress unusedStructMember
1687  bool verbose;
1688  // cppcheck-suppress unusedStructMember
1689  void *extra;
1690 };
1691 
1695  string version;
1696  istream *is;
1697  // cppcheck-suppress unusedStructMember
1698  size_t nline;
1699  // cppcheck-suppress unusedStructMember
1700  bool loaded;
1701  // cppcheck-suppress unusedStructMember
1702  bool verbose;
1703  // cppcheck-suppress unusedStructMember
1704  void *extra;
1705 };
1706 
1707 
1711  string otype;
1712  // cppcheck-suppress unusedStructMember
1713  bool checkonly;
1714  // cppcheck-suppress unusedStructMember
1715  bool deleted;
1716  // cppcheck-suppress unusedStructMember
1717  void *extra;
1718 };
1719 
1723  string id;
1724  string type;
1725  string data;
1726  string error;
1727  bool done;
1728  bool skip;
1729  void *extra;
1730 };
1732 
1734 #define CHECK_VALID ALD_CHECK(m_bValid, ERR_INVALID_OBJECT)
1736 #define CHECK_NAME_VALID ALD_CHECK(!m_strName.empty(), ERR_INVALID_OBJECT)
1737 #define QLOG_WARN(warn) {if(!quiet) LOG_WARN(warn);}
1738 #define QLOG_ERR(warn) {if(!quiet) LOG_ERR(warn);}
1739 #define QALD_ERR(err) {if(!quiet) ALD_ERROR(err);}
1740 
1743 #define ALD_OBJECT_TRIGGER_CHECK(action, quiet) TriggerAction(ALD_OBJECT_ACTION(PFM2Name(__PRETTY_FUNCTION__), \
1745  it->first), aotatCheck, quite)
1746 #define ALD_OBJECT_TRIGGER_ACTION(action, quiet) TriggerAction(ALD_OBJECT_ACTION(PFM2Name(__PRETTY_FUNCTION__), \
1747  it->first), aotatAction, quite)
1748 
1751 #define ALD_OBJECT_START_OPERATION(op, arg) StartOperation(PFM2Name(__PRETTY_FUNCTION__), op, arg, "", false)
1753 #define ALD_OBJECT_START_OPERATION_FORCE(op, arg, force) StartOperation(PFM2Name(__PRETTY_FUNCTION__), op, arg, "", force)
1754 #define ALD_OBJECT_START_OPERATION_DETAIL(op, arg, det) StartOperation(PFM2Name(__PRETTY_FUNCTION__), op, arg, det, false)
1755 #define ALD_OBJECT_COMMIT_OPERATION(op) CommitOperation(PFM2Name(__PRETTY_FUNCTION__), op, false)
1756 #define ALD_OBJECT_COMMIT_OPERATION_PE(op) CommitOperation(PFM2Name(__PRETTY_FUNCTION__), op, true)
1757 #define ALD_OBJECT_COMMIT_OPERATION_PEQ(op) CommitOperation(PFM2Name(__PRETTY_FUNCTION__), op, true, quiet)
1758 
1761 bool IfAdminCanManageHost(CALDConnectionPtr conn, const string& admin, const string& host);
1762 
1764 bool IfAdminCanManageHostGroup(CALDConnectionPtr conn, const string& admin, const string& hostgroup);
1765 
1767 } // ALD
1768 
1769 #endif // ALD_OBJECTS
Definition: ALDObjects.h:1665
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1683
ald_info_level m_InfoLevel
Текущий уровень информации
Definition: ALDObjects.h:136
CALDHostPtr GetServer(CALDConnectionPtr Conn)
Возвращает разделяемый указатель на объект комьютер для сервера
list< string > ald_string_list
Список строк
Definition: ALDUtils.h:152
Объявление основного интерфейса клиента Astra Linux Directory и необходимых для него типов и интерфей...
Класс ALD - группа администраторов
Definition: ALDObjects.h:1049
Поля кончились
Definition: ALDObjects.h:91
string m_strLogDest
Расположение файла журнала
Definition: ALDObjects.h:1091
#define ALD_INFO_UNCHANGED
Изменение уровня информации не требуется
Definition: ALDObjects.h:113
shared_ptr< CALDService > CALDServicePtr
Разделяемый указатель на объект CALDService.
Definition: ALDObjects.h:854
void * pamh
Дескриптор PAM сессии
Definition: ALDObjects.h:1676
Объявление вспомогательных типов и функций работы с ядром Astra Linux Directory.
shared_ptr< CALDTask > CALDTaskPtr
Разделяемый указатель на объект CALDTask.
Definition: ALDObjects.h:724
shared_ptr< CALDHost > CALDHostPtr
Разделяемый указатель на объект CALDHost.
Definition: ALDObjects.h:1044
shared_ptr< IALDLdapEntity > CALDLdapEntPtr
Разделяемый указатель на интерфейс записи LDAP IALDLdapEntity.
Definition: ldap-wrapper.h:102
const string & otype() const
Возвращает тип объекта ALD.
Definition: ALDObjects.h:303
void * extra
Доп. параметр
Definition: ALDObjects.h:1678
CALDKrbPrincipalPtr princ() const
Возвращает приципал Kerberos.
Definition: ALDObjects.h:842
CALDLdapEntPtr m_Entity
Разделяемый указатель на LDAP сущность объекта
Definition: ALDObjects.h:144
void * extra
Доп. параметр
Definition: ALDObjects.h:1659
void * extra
Доп. параметр
Definition: ALDObjects.h:1729
CALDKrbPrincipalPtr m_krbInTGT
InTGT принципал Kerberos.
Definition: ALDObjects.h:1155
Действие
Definition: ALDObjects.h:105
bool skip
Признак пропуска задания
Definition: ALDObjects.h:1728
bool loaded
Признак успеха загрузки
Definition: ALDObjects.h:1700
Неожиданное поле
Definition: ALDObjects.h:90
string hometype
Тип домашнего каталога
Definition: ALDObjects.h:1669
unsigned int m_HistoryNum
Длина истории паролей
Definition: ALDObjects.h:761
string m_strLocation
Расположение документа
Definition: ALDObjects.h:1238
string otype
Тип объекта
Definition: ALDObjects.h:1711
Ошибка при загрузке
Definition: ALDObjects.h:84
Успешно загружено
Definition: ALDObjects.h:89
aoLoadFieldStatus
Статус загрузки поля объекта
Definition: ALDObjects.h:88
string m_strOutTGT
Имя OutTGT принципала Kerberos.
Definition: ALDObjects.h:1158
bool deleted
Признак успеха удаления
Definition: ALDObjects.h:1715
Успешно загружен
Definition: ALDObjects.h:82
ald_string_list mounts
Список монтируемых каталогов
Definition: ALDObjects.h:1673
CALDConnectionPtr m_Conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:143
string m_strUID
Строковое представление UID пользователя
Definition: ALDObjects.h:469
shared_ptr< CALDDocument > CALDDocumentPtr
Разделяемый указатель на объект CALDDocument.
Definition: ALDObjects.h:1278
CALDKrbPrincipalPtr m_krbPrinc
Принципал Kerberos.
Definition: ALDObjects.h:828
bool done
Признак успеха выполнения
Definition: ALDObjects.h:1727
unsigned int m_MaxLife
Максимальное время жизни
Definition: ALDObjects.h:758
bool IsValid() const
Возвращает признак валидности объекта
Definition: ALDObjects.h:305
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1722
string m_strOType
Тип объекта ALD.
Definition: ALDObjects.h:141
unsigned int m_uDirection
Тип отношений
Definition: ALDObjects.h:1154
shared_ptr< CALDGroup > CALDGroupPtr
Разделяемый указатель на объект CALDGroup.
Definition: ALDObjects.h:653
shared_ptr< CALDTrustedDomain > CALDTrustedDomainPtr
Разделяемый указатель на объект CALDTrustedDomain.
Definition: ALDObjects.h:1204
uid_t m_UID
UID пользователя
Definition: ALDObjects.h:470
virtual void InternalGet(string object, ald_info_level level, bool quiet=false)
Перегружаемый внутренний вызов получения информации об объекте
Definition: ALDObjects.h:1300
Класс ALD - сервис
Definition: ALDObjects.h:825
ostream * os
Указатель потока вывода
Definition: ALDObjects.h:1685
CALDConnectionPtr conn() const
Возвращает раздеряемый указатель на соединение
Definition: ALDObjects.h:293
void * extra
Доп. параметр
Definition: ALDObjects.h:1704
int ald_info_level
Уровень информации объекта
Definition: ALDObjects.h:110
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1694
void ShowLdapOperInfo(CALDObject &object, ostream &out)
Печать операционной информации LDAP по указанному объекту в заданный поток вывода ...
string m_strName
Наименование
Definition: ALDObjects.h:137
Абстрактный базовый класс объекта Astra Linux Directory.
Definition: ALDObjects.h:132
Удаление
Definition: ALDObjects.h:100
bool verbose
Признак вывода информации
Definition: ALDObjects.h:1687
string m_strBase
Базовый путь поиска в LDAP.
Definition: ALDObjects.h:138
string id
Идентификатор задания
Definition: ALDObjects.h:1723
shared_ptr< CALDAdmGroup > CALDAdmGroupPtr
Разделяемый указатель на объект CALDAdmGroup.
Definition: ALDObjects.h:1077
shared_ptr< CALDPolicy > CALDPolicyPtr
Разделяемый указатель на объект CALDPolicy.
Definition: ALDObjects.h:820
Класс ALD - политика
Definition: ALDObjects.h:754
Структура данных сохранения резервной копии (событие ALD_PORTABLE_SAVE)
Definition: ALDObjects.h:1682
shared_ptr< CALDSvcGroup > CALDSvcGroupPtr
Разделяемый указатель на объект CALDSvcGroup.
Definition: ALDObjects.h:892
Получение
Definition: ALDObjects.h:97
shared_ptr< CALDObject > CALDObjPtr
Разделяемый указатель на объект CALDObject.
Definition: ALDObjects.h:391
bool UpdateServiceInKeytab(CALDConnectionPtr Conn, const string &keytab, const string &service, bool create)
Обновление ключей сервиса в ключевом файле
string m_strVersion
Версия документа
Definition: ALDObjects.h:1237
shared_ptr< CALDUser > CALDUserPtr
Разделяемый указатель на объект CALDUser.
Definition: ALDObjects.h:584
string error
Сообщение об ошибке
Definition: ALDObjects.h:1726
aoTriggerActionType
Тип вызова триггера на события с объектом
Definition: ALDObjects.h:104
Структура событий объекта
Definition: ALDObjects.h:1654
shared_ptr< CALDDomain > CALDDomainPtr
Разделяемый указатель на объект CALDDomain.
Definition: ALDObjects.h:1624
gid_t gid
GID.
Definition: ALDObjects.h:1672
unsigned int m_serverID
Идентификатор сервера
Definition: ALDObjects.h:986
gid_t m_GID
GID.
Definition: ALDObjects.h:609
Класс ALD - группа сервисов
Definition: ALDObjects.h:865
aoLoadStatus
Статус загрузки объекта
Definition: ALDObjects.h:81
string type
Тип задания
Definition: ALDObjects.h:1724
CALDKrbPrincipalPtr m_krbPrinc
Приципал Kerberos.
Definition: ALDObjects.h:987
Класс ALD - задание
Definition: ALDObjects.h:684
unsigned int ctrls
Опции PAM.
Definition: ALDObjects.h:1674
size_t nline
Номер строки
Definition: ALDObjects.h:1698
Объявление подсистемы регистрации событий Astra Linux Directory.
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1666
bool m_bValid
Признак валидности
Definition: ALDObjects.h:139
CALDKrbPrincipalPtr m_krbPrinc
Разделяемый указатель на принципал Kerberos.
Definition: ALDObjects.h:468
shared_ptr< CALDKrbPolicy > CALDKrbPolicyPtr
Разделяемый указатель на политику паролей Kerberos CALDKrbPolicy.
Definition: kadm5-wrapper.h:111
multimap< string, string > ald_string_multimap
MultiMAP строка => строка
Definition: ALDUtils.h:166
string m_strFlags
Строка флагов компьютера
Definition: ALDObjects.h:985
Создание
Definition: ALDObjects.h:98
CALDLdapEntPtr entity() const
Возвращает раздеряемый указатель на LDAP сущность
Definition: ALDObjects.h:295
shared_ptr< CALDConnection > CALDConnectionPtr
Разделяемый указатель на соединение
Definition: ALDCoreUtils.h:104
string m_strType
Тип задания
Definition: ALDObjects.h:687
uid_t uid
UID.
Definition: ALDObjects.h:1671
ald_info_level infolevel() const
Возвращает текущий уровень информации объекта
Definition: ALDObjects.h:297
shared_ptr< CALDDomainLogCfg > CALDDomainLogCfgPtr
Разделяемый указатель на объект CALDDomainLogCfg.
Definition: ALDObjects.h:1121
void * extra
Доп. параметр
Definition: ALDObjects.h:1689
gid_t m_GID
GID пользователя
Definition: ALDObjects.h:472
virtual bool IsSystemObject()
Возвращает признак системного объекта
Definition: ALDObjects.h:307
bool m_bSystem
Признак системного объекта
Definition: ALDObjects.h:140
string homeserver
Сервер домашнего каталога
Definition: ALDObjects.h:1670
bool quiet
Признак тихого режима
Definition: ALDObjects.h:1657
unsigned int m_MinLength
Минимальная длина
Definition: ALDObjects.h:759
void * extra
Доп. параметр
Definition: ALDObjects.h:1717
void SetALDTimestamp(CALDObject &object, const string &tsname, time_t ts=0)
Установка именнованной метки времени объекта
CALDHostPtr GetHost(CALDConnectionPtr Conn)
Возвращает разделяемый указатель на объект комьютер для текущего хоста
string m_strGID
Тестовое представление GID.
Definition: ALDObjects.h:608
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1655
Ошибка при загрузке
Definition: ALDObjects.h:92
Структура данных загрузки резервной копии (событие ALD_PORTABLE_LOAD)
Definition: ALDObjects.h:1693
unsigned int m_MinClasses
Минимальное число классов
Definition: ALDObjects.h:760
unsigned int ald_user_caps
Вектор ALD привилегий
Definition: ALDObjects.h:416
aoOperation
Операции над объектом
Definition: ALDObjects.h:96
istream * is
Указатель потока ввода
Definition: ALDObjects.h:1696
Продолжение загрузки
Definition: ALDObjects.h:83
bool verbose
Признак вывода информации
Definition: ALDObjects.h:1702
int ald_task_status
Статус/код ошибки задания
Definition: ALDObjects.h:656
#define ALD_INFO_DEFAULT
Уровень информации объекта по умолчанию
Definition: ALDObjects.h:116
Класс ALD - событие
Definition: ALDObjects.h:729
bool IfAdminCanManageHost(CALDConnectionPtr conn, const string &admin, const string &host)
Проверка возможности управления компьютером указанным администратором
string data
Данные задания
Definition: ALDObjects.h:1725
virtual void InternalSave(ostream &os, bool verbose=false)
Перегружаемый вызов сохранения объекта в резервной копии
Definition: ALDObjects.h:1164
Класс ALD - группа компьютеров
Definition: ALDObjects.h:912
string otype
Тип объекта
Definition: ALDObjects.h:1684
Класс ALD - пользователь
Definition: ALDObjects.h:465
Структура данных обработки заданий (событие ALD_TASK_PENDING)
Definition: ALDObjects.h:1721
Структура данных удаления объекта (событие ALD_DELETE_OBJECT)
Definition: ALDObjects.h:1709
string home
Домашний каталог
Definition: ALDObjects.h:1668
Модификация
Definition: ALDObjects.h:99
string user
Пользователь
Definition: ALDObjects.h:1667
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1710
bool checkonly
Только проверка без удаления
Definition: ALDObjects.h:1713
Основной заголовочный файл, содержащий необходимый минимум предварительных объявлений и включений дру...
string version
Версия
Definition: ALDObjects.h:1695
unsigned int m_MinLife
Минимальное время жизни
Definition: ALDObjects.h:757
shared_ptr< CALDKrbPrincipal > CALDKrbPrincipalPtr
Разделяемый указатель на принципал Kerberos CALDKrbPrincipal.
Definition: kadm5-wrapper.h:185
ald_user_caps m_Caps
Вектор ALD привилегий
Definition: ALDObjects.h:473
IALDCore * m_pCore
Указатель на интерфейс ядра
Definition: ALDObjects.h:142
Класс ALD - группа
Definition: ALDObjects.h:605
Класс ALD - документ
Definition: ALDObjects.h:1234
Класс ALD - домен
Definition: ALDObjects.h:1292
shared_ptr< CALDEvTask > CALDEvTaskPtr
Разделяемый указатель на объект CALDEvTask.
Definition: ALDObjects.h:746
Проверка
Definition: ALDObjects.h:106
Класс ALD - компьютер
Definition: ALDObjects.h:982
string m_strGID
Строковое представление GID пользователя
Definition: ALDObjects.h:471
ald_task_status m_Status
Статус задания
Definition: ALDObjects.h:688
shared_ptr< CALDHostGroup > CALDHostGroupPtr
Разделяемый указатель на объект CALDHostGroup.
Definition: ALDObjects.h:948
CALDKrbPrincipalPtr m_krbOutTGT
OutTGT принципал Kerberos.
Definition: ALDObjects.h:1156
string m_strVersion
Версия домена
Definition: ALDObjects.h:1295
#define ALD_INVALID_ID
Неверный идентификатор
Definition: ALDObjects.h:28
string GetALDTimestamp(CALDObject &object, const string &tsname)
Возвращает текстовое представление именованной метки времени объекта
bool IfAdminCanManageHostGroup(CALDConnectionPtr conn, const string &admin, const string &hostgroup)
Проверка возможности управления группой компьютеров указанным администратором
CALDKrbPolicyPtr m_krbPolicy
Указатель на политику Kerberos.
Definition: ALDObjects.h:762
string m_strInTGT
Имя InTGT принципала Kerberos.
Definition: ALDObjects.h:1157
string ModHostFlags(const string &flags, char flag, bool op)
Модификация строки флагов компьютера
Класс ALD - шаблоны протоколирования
Definition: ALDObjects.h:1088
Объявление интерфейса взаимодействия с LDAP.
Абстрактный класс IALDCore - основной интерфейс клиента Astra Linux Directory, с помощью которого вып...
Definition: ALDCore.h:241
virtual void InternalSave(ostream &os, bool verbose=false)
Перегружаемый вызов сохранения объекта в резервной копии
Definition: ALDObjects.h:690
string m_strKDC
Имя контроллера домена
Definition: ALDObjects.h:1153
Класс ALD - доверенный домен
Definition: ALDObjects.h:1150