27 #define ALD_INVALID_ID 0 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" 52 #define ALD_PBK_HEAD "<<{ ALD Portable Backup File }>>" 55 #define ALD_PBK_PREFIX "<<{ ALDObject: " 58 #define ALD_PBK_SUFFIX ">>}" 61 #define ALD_PBK_SIGN(type) string(ALD_PBK_PREFIX)+type 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" 113 #define ALD_INFO_UNCHANGED -1 116 #define ALD_INFO_DEFAULT 0 119 #define ALD_OBJECT_ACTION(object, action) string(object)+":"+action 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" 151 virtual void InternalSave(ostream &os,
bool verbose =
false) = 0;
160 virtual aoLoadStatus InternalLoad(istream &is,
size_t &nline,
string &line,
161 bool verbose =
false);
173 const string &field,
string &value,
bool fuzzy =
false);
187 #define LOAD_FIELD(is, nline, line, field, value) {if(LoadField(is, nline, line, field, value) != aolfsLoaded) return aolsError;} 190 #define LOAD_FIELDS(is, nline, line, field, values) {if(LoadFields(is, nline, line, field, values) == aolfsError) return aolsError;} 201 virtual void InternalGet(
string object, ald_info_level level,
bool quiet =
false) = 0;
207 virtual bool ProcessEntity(
bool quiet =
false);
210 virtual void EnsureInfoLevel(ald_info_level level);
213 virtual void EnsureEntity();
219 virtual void InternalRemove(
bool force,
void *extra = NULL);
224 virtual void InternalCreate(
void *extra = NULL);
231 virtual void InternalUpdate(
unsigned int setmask,
ald_string_multimap &attrs,
void *extra = NULL);
259 virtual void InternalNotice(
aoOperation op,
const string &arg,
const string &detail) = 0;
268 virtual bool StartOperation(
const string &
object,
aoOperation op,
const string &arg,
269 const string &detail,
bool force =
false);
277 virtual void CommitOperation(
const string &
object,
aoOperation op,
bool process =
false,
bool quiet =
false);
299 string const &name()
const;
301 string const &base()
const;
303 const string &
otype()
const {
return m_strOType;}
310 virtual void Clear();
317 virtual bool CheckRemoval(
bool quiet =
false);
329 virtual void Save(ostream &os,
bool verbose =
false);
336 virtual void Load(istream &is,
size_t &nline,
bool verbose =
false);
341 virtual bool CheckConsistency(
string &msg);
349 virtual bool ValidateProperty(
int property,
const void *value,
string *msg,
bool quiet);
365 virtual void Remove(
bool force =
false) = 0;
384 virtual bool Get(
const string &oname, ald_info_level level =
ALD_INFO_DEFAULT,
bool quiet =
false) = 0;
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 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) 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 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 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);
490 string const &strUID();
494 string const &strGID();
498 ald_user_caps caps();
500 ald_linux_caps linuxCaps();
506 bool IsAllHostAdder();
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);
573 void SetMICLevel(
unsigned int level);
575 void SetPhoto(
const char* buff,
unsigned long len);
577 void* GetPhoto(
unsigned long &len);
578 virtual bool CheckConsistency(
string &msg);
579 virtual bool ValidateProperty(
int property,
const void *value,
string *msg,
bool quiet);
587 #define ALD_GROUP_INFO_0 0 590 #define ALD_GROUP_INFO_1 1 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 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);
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,
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();
659 #define ALD_TASK_STATUS_PENDING 0 661 #define ALD_TASK_STATUS_OK 1 662 #define ALD_TASK_STATUS_ERROR -1 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 674 #define ALD_TASK_INFO_1 1 677 #define ALD_TASK_INFO_2 2 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);
698 string const &id()
const;
700 string const &type()
const;
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);
732 virtual void InternalNotice(
aoOperation op,
const string &arg,
const string &detail);
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);
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);
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;
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();
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);
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);
849 virtual void Remove(
bool force =
false);
857 #define ALD_SGROUP_PROP_NAME 0 859 #define ALD_SGROUP_PROP_MEMBER 1 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);
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);
895 #define ALD_HGROUP_INFO_0 0 898 #define ALD_HGROUP_INFO_1 1 903 #define ALD_HGROUP_PROP_NAME 0 905 #define ALD_HGROUP_PROP_HOST 1 906 #define ALD_HGROUP_PROP_DESC 2 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);
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,
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);
951 #define ALD_HOST_INFO_0 0 954 #define ALD_HOST_INFO_1 1 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 967 #define ALD_HOST_DC 'C' 969 #define ALD_HOST_PRIMARY 'P' 970 #define ALD_HOST_FS 'F' 971 #define ALD_HOST_DISABLED 'D' 973 #define ALD_HOST_EMPTY "[]" 974 #define ALD_HOST_PDC "[PCF]" 975 #define ALD_HOST_BDC "[CF]" 976 #define ALD_OLD_SRV "[PCF]" 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);
1007 string const flags()
const;
1009 unsigned int serverID();
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);
1041 string ModHostFlags(
const string &flags,
char flag,
bool op);
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);
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);
1080 #define ALD_LOG_CFG_DEST 0 1082 #define ALD_LOG_CFG_TPL 1 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);
1101 string log_dest()
const;
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);
1126 #define ALD_TD_INFO_0 0 1128 #define ALD_TD_INFO_1 1 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 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 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);
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);
1176 string const &kdc()
const;
1178 string const &strInTGT();
1181 string const &strOutTGT();
1183 unsigned int direction()
const;
1185 string strDirection()
const;
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);
1207 #define ALD_DOCUMENT_INFO_0 0 1210 #define ALD_DOCUMENT_INFO_1 1 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 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" 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);
1249 string const &version();
1251 string const &location();
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 =
"");
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 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){ }
1306 string const &version()
const;
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);
1334 gid_t NextGID(
bool generate);
1351 bool ResolveGroup(
const string &group,
string &groupname,
string &gid,
bool quiet =
false);
1359 uid_t NextUID(
bool generate);
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,
1389 bool ResolveUser(
const string &user,
string &username,
string &uid,
bool quiet =
false);
1401 void EnumerateTasks(
ald_string_list &tasks,
unsigned int status_filter);
1408 void EnumerateTasksSince(
ald_string_list &tasks,
unsigned int status_filter, time_t since);
1411 unsigned int NextTID(
bool generate);
1417 string CreateTask(
const string &TaskType,
const string &TaskData);
1435 unsigned int NextEID(
bool generate);
1441 string RaiseEvent(
const string &TaskType,
const string &TaskData);
1444 void RotateEvents();
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);
1462 bool ResolvePolicy(
const string &policy,
bool quiet =
false);
1471 void AddService(
const string &service);
1478 bool ResolveService(
const string &service,
bool quiet =
false);
1491 bool ResolveServicesGroup(
const string &sgroup,
bool quiet =
false);
1501 void AddHost(
const string &host,
const string &desc);
1509 bool ResolveHost(
const string &host,
string &hostname,
bool quiet =
false);
1518 void AddHostsGroup(
const string &hgroup,
const string &hgroupdesc);
1525 bool ResolveHostsGroup(
const string &hgroup,
bool quiet =
false);
1529 unsigned int taskHistory();
1532 void SetTaskHistory(
unsigned int value);
1535 void UpdateServerTimestamp();
1538 string server_timestamp();
1563 bool ResolveALDServer(
string &host,
unsigned int &server_id,
bool quiet =
false);
1572 void AddTrustedDomain(
const string &realm,
const string &kdc,
const string &desc,
1573 unsigned int newdir,
const string &newpwd);
1581 bool ResolveTrustedDomain(
const string &realm,
string &kdc,
bool quiet =
false);
1594 void AddDocument(
const string &name,
const string &title,
const string &location,
1595 const string &ver,
const string &desc);
1598 void AddInternalDocument(
const string &name,
const string &ver,
const string &desc);
1602 virtual void Save(
const string &pbkfile,
bool verbose =
false);
1604 virtual void Save(ostream &os,
bool verbose =
false);
1606 virtual void Load(
const string &pbkfile,
bool verbose =
false);
1608 virtual void Load(istream &is,
const string &bkname,
bool verbose =
false);
1610 virtual bool CheckRemoval(
bool quiet =
false);
1612 void Remove(
bool force);
1621 virtual bool RemoveObject(
const string &otype,
const string &oname,
bool checkonly);
1685 bool bLoggedInCached;
1688 bool bUserPermittedToHost;
1746 #define CHECK_VALID ALD_CHECK(m_bValid, ERR_INVALID_OBJECT) 1748 #define CHECK_NAME_VALID ALD_CHECK(!m_strName.empty(), ERR_INVALID_OBJECT) 1749 #define QLOG_WARN(warn) {if(!quiet) LOG_WARN(warn);} 1750 #define QLOG_ERR(warn) {if(!quiet) LOG_ERR(warn);} 1751 #define QALD_ERR(err) {if(!quiet) ALD_ERROR(err);} 1755 #define ALD_OBJECT_TRIGGER_CHECK(action, quiet) TriggerAction(ALD_OBJECT_ACTION(PFM2Name(__PRETTY_FUNCTION__), \ 1757 it->first), aotatCheck, quite) 1758 #define ALD_OBJECT_TRIGGER_ACTION(action, quiet) TriggerAction(ALD_OBJECT_ACTION(PFM2Name(__PRETTY_FUNCTION__), \ 1759 it->first), aotatAction, quite) 1763 #define ALD_OBJECT_START_OPERATION(op, arg) StartOperation(PFM2Name(__PRETTY_FUNCTION__), op, arg, "", false) 1765 #define ALD_OBJECT_START_OPERATION_FORCE(op, arg, force) StartOperation(PFM2Name(__PRETTY_FUNCTION__), op, arg, "", force) 1766 #define ALD_OBJECT_START_OPERATION_DETAIL(op, arg, det) StartOperation(PFM2Name(__PRETTY_FUNCTION__), op, arg, det, false) 1767 #define ALD_OBJECT_COMMIT_OPERATION(op) CommitOperation(PFM2Name(__PRETTY_FUNCTION__), op, false) 1768 #define ALD_OBJECT_COMMIT_OPERATION_PE(op) CommitOperation(PFM2Name(__PRETTY_FUNCTION__), op, true) 1769 #define ALD_OBJECT_COMMIT_OPERATION_PEQ(op) CommitOperation(PFM2Name(__PRETTY_FUNCTION__), op, true, quiet) 1781 #endif // ALD_OBJECTS
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1695
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:1679
Объявление вспомогательных типов и функций работы с ядром 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
void * extra
Доп. параметр
Definition: ALDObjects.h:1681
CALDLdapEntPtr m_Entity
Разделяемый указатель на LDAP сущность объекта
Definition: ALDObjects.h:144
void * extra
Доп. параметр
Definition: ALDObjects.h:1662
void * extra
Доп. параметр
Definition: ALDObjects.h:1741
const string & otype() const
Возвращает тип объекта ALD.
Definition: ALDObjects.h:303
CALDKrbPrincipalPtr m_krbInTGT
InTGT принципал Kerberos.
Definition: ALDObjects.h:1155
Действие
Definition: ALDObjects.h:105
Пространство имен основного интерфейса Astra Linux Directory.
Definition: action-definitions.h:9
bool skip
Признак пропуска задания
Definition: ALDObjects.h:1740
bool loaded
Признак успеха загрузки
Definition: ALDObjects.h:1712
Неожиданное поле
Definition: ALDObjects.h:90
string hometype
Тип домашнего каталога
Definition: ALDObjects.h:1672
unsigned int m_HistoryNum
Длина истории паролей
Definition: ALDObjects.h:761
string m_strLocation
Расположение документа
Definition: ALDObjects.h:1238
string otype
Тип объекта
Definition: ALDObjects.h:1723
Ошибка при загрузке
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:1727
Успешно загружен
Definition: ALDObjects.h:82
ald_string_list mounts
Список монтируемых каталогов
Definition: ALDObjects.h:1676
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:1739
unsigned int m_MaxLife
Максимальное время жизни
Definition: ALDObjects.h:758
CALDConnectionPtr conn() const
Возвращает раздеряемый указатель на соединение
Definition: ALDObjects.h:293
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1734
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:1697
void * extra
Доп. параметр
Definition: ALDObjects.h:1716
int ald_info_level
Уровень информации объекта
Definition: ALDObjects.h:110
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1706
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:1699
string m_strBase
Базовый путь поиска в LDAP.
Definition: ALDObjects.h:138
string id
Идентификатор задания
Definition: ALDObjects.h:1735
shared_ptr< CALDAdmGroup > CALDAdmGroupPtr
Разделяемый указатель на объект CALDAdmGroup.
Definition: ALDObjects.h:1077
shared_ptr< CALDPolicy > CALDPolicyPtr
Разделяемый указатель на объект CALDPolicy.
Definition: ALDObjects.h:820
Класс ALD - политика
Definition: ALDObjects.h:754
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:1738
aoTriggerActionType
Тип вызова триггера на события с объектом
Definition: ALDObjects.h:104
shared_ptr< CALDDomain > CALDDomainPtr
Разделяемый указатель на объект CALDDomain.
Definition: ALDObjects.h:1627
gid_t gid
GID.
Definition: ALDObjects.h:1675
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:1736
CALDKrbPrincipalPtr m_krbPrinc
Приципал Kerberos.
Definition: ALDObjects.h:987
Класс ALD - задание
Definition: ALDObjects.h:684
unsigned int ctrls
Опции PAM.
Definition: ALDObjects.h:1677
size_t nline
Номер строки
Definition: ALDObjects.h:1710
Объявление подсистемы регистрации событий Astra Linux Directory.
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1669
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
shared_ptr< CALDConnection > CALDConnectionPtr
Разделяемый указатель на соединение
Definition: ALDCoreUtils.h:104
string m_strType
Тип задания
Definition: ALDObjects.h:687
uid_t uid
UID.
Definition: ALDObjects.h:1674
shared_ptr< CALDDomainLogCfg > CALDDomainLogCfgPtr
Разделяемый указатель на объект CALDDomainLogCfg.
Definition: ALDObjects.h:1121
void * extra
Доп. параметр
Definition: ALDObjects.h:1701
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:1673
ald_info_level infolevel() const
Возвращает текущий уровень информации объекта
Definition: ALDObjects.h:297
bool quiet
Признак тихого режима
Definition: ALDObjects.h:1660
unsigned int m_MinLength
Минимальная длина
Definition: ALDObjects.h:759
void * extra
Доп. параметр
Definition: ALDObjects.h:1729
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:1658
Ошибка при загрузке
Definition: ALDObjects.h:92
bool IsValid() const
Возвращает признак валидности объекта
Definition: ALDObjects.h:305
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:1708
Продолжение загрузки
Definition: ALDObjects.h:83
bool verbose
Признак вывода информации
Definition: ALDObjects.h:1714
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:1737
virtual void InternalSave(ostream &os, bool verbose=false)
Перегружаемый вызов сохранения объекта в резервной копии
Definition: ALDObjects.h:1164
Класс ALD - группа компьютеров
Definition: ALDObjects.h:912
string otype
Тип объекта
Definition: ALDObjects.h:1696
Класс ALD - пользователь
Definition: ALDObjects.h:465
string home
Домашний каталог
Definition: ALDObjects.h:1671
Модификация
Definition: ALDObjects.h:99
string user
Пользователь
Definition: ALDObjects.h:1670
CALDConnectionPtr conn
Разделяемый указатель на соединение
Definition: ALDObjects.h:1722
bool checkonly
Только проверка без удаления
Definition: ALDObjects.h:1725
Основной заголовочный файл, содержащий необходимый минимум предварительных объявлений и включений дру...
string version
Версия
Definition: ALDObjects.h:1707
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)
Возвращает текстовое представление именованной метки времени объекта
CALDKrbPrincipalPtr princ() const
Возвращает приципал Kerberos.
Definition: ALDObjects.h:842
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
CALDLdapEntPtr entity() const
Возвращает раздеряемый указатель на LDAP сущность
Definition: ALDObjects.h:295
string m_strKDC
Имя контроллера домена
Definition: ALDObjects.h:1153
Класс ALD - доверенный домен
Definition: ALDObjects.h:1150