mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-26 07:04:37 +02:00
Implemented compat support for users and user groups.
This commit is contained in:
parent
b674d46557
commit
5228d7f10b
@ -663,6 +663,51 @@ void CompatComponent::StatusTimerHandler(void)
|
|||||||
objectfp << tempobjectfp.str();
|
objectfp << tempobjectfp.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_FOREACH(const DynamicObject::Ptr& object, DynamicType::GetObjects("User")) {
|
||||||
|
User::Ptr user = static_pointer_cast<User>(object);
|
||||||
|
|
||||||
|
stringstream tempobjectfp;
|
||||||
|
tempobjectfp << std::fixed;
|
||||||
|
|
||||||
|
{
|
||||||
|
ObjectLock olock(user);
|
||||||
|
|
||||||
|
tempobjectfp << "define contact {" << "\n"
|
||||||
|
<< "\t" << "contact_name" << "\t" << user->GetName() << "\n"
|
||||||
|
<< "\t" << "alias" << "\t" << user->GetDisplayName() << "\n"
|
||||||
|
<< "\t" << "service_notification_options" << "\t" << "w,u,c,r,f,s" << "\n"
|
||||||
|
<< "\t" << "host_notification_options" << "\t" << "d,u,r,f,s" << "\n"
|
||||||
|
<< "\t" << "host_notifications_enabled" << "\t" << 1 << "\n"
|
||||||
|
<< "\t" << "service_notifications_enabled" << "\t" << 1 << "\n"
|
||||||
|
<< "\t" << "}" << "\n"
|
||||||
|
<< "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
objectfp << tempobjectfp.str();
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_FOREACH(const DynamicObject::Ptr& object, DynamicType::GetObjects("UserGroup")) {
|
||||||
|
UserGroup::Ptr ug = static_pointer_cast<UserGroup>(object);
|
||||||
|
|
||||||
|
stringstream tempobjectfp;
|
||||||
|
tempobjectfp << std::fixed;
|
||||||
|
|
||||||
|
{
|
||||||
|
ObjectLock olock(ug);
|
||||||
|
|
||||||
|
tempobjectfp << "define contactgroup {" << "\n"
|
||||||
|
<< "\t" << "contactgroup_name" << "\t" << ug->GetName() << "\n"
|
||||||
|
<< "\t" << "alias" << "\t" << ug->GetDisplayName() << "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
tempobjectfp << "\t" << "members" << "\t";
|
||||||
|
DumpNameList(tempobjectfp, UserGroup::GetMembers(ug));
|
||||||
|
tempobjectfp << "\n"
|
||||||
|
<< "\t" << "}" << "\n";
|
||||||
|
|
||||||
|
objectfp << tempobjectfp.str();
|
||||||
|
}
|
||||||
|
|
||||||
statusfp.close();
|
statusfp.close();
|
||||||
objectfp.close();
|
objectfp.close();
|
||||||
|
|
||||||
|
@ -277,6 +277,8 @@ type Script {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type User {
|
type User {
|
||||||
|
%attribute string "display_name",
|
||||||
|
|
||||||
%attribute dictionary "macros" {
|
%attribute dictionary "macros" {
|
||||||
%attribute string "*"
|
%attribute string "*"
|
||||||
},
|
},
|
||||||
|
@ -26,6 +26,7 @@ REGISTER_TYPE(User, NULL);
|
|||||||
User::User(const Dictionary::Ptr& properties)
|
User::User(const Dictionary::Ptr& properties)
|
||||||
: DynamicObject(properties)
|
: DynamicObject(properties)
|
||||||
{
|
{
|
||||||
|
RegisterAttribute("display_name", Attribute_Config, &m_DisplayName);
|
||||||
RegisterAttribute("macros", Attribute_Config, &m_Macros);
|
RegisterAttribute("macros", Attribute_Config, &m_Macros);
|
||||||
RegisterAttribute("groups", Attribute_Config, &m_Groups);
|
RegisterAttribute("groups", Attribute_Config, &m_Groups);
|
||||||
}
|
}
|
||||||
@ -48,6 +49,14 @@ User::Ptr User::GetByName(const String& name)
|
|||||||
return dynamic_pointer_cast<User>(configObject);
|
return dynamic_pointer_cast<User>(configObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String User::GetDisplayName(void) const
|
||||||
|
{
|
||||||
|
if (!m_DisplayName.IsEmpty())
|
||||||
|
return m_DisplayName;
|
||||||
|
else
|
||||||
|
return GetName();
|
||||||
|
}
|
||||||
|
|
||||||
Dictionary::Ptr User::GetGroups(void) const
|
Dictionary::Ptr User::GetGroups(void) const
|
||||||
{
|
{
|
||||||
return m_Groups;
|
return m_Groups;
|
||||||
|
@ -39,6 +39,7 @@ public:
|
|||||||
|
|
||||||
static User::Ptr GetByName(const String& name);
|
static User::Ptr GetByName(const String& name);
|
||||||
|
|
||||||
|
String GetDisplayName(void) const;
|
||||||
Dictionary::Ptr GetGroups(void) const;
|
Dictionary::Ptr GetGroups(void) const;
|
||||||
|
|
||||||
Dictionary::Ptr GetMacros(void) const;
|
Dictionary::Ptr GetMacros(void) const;
|
||||||
@ -48,6 +49,7 @@ protected:
|
|||||||
void OnAttributeChanged(const String& name, const Value& oldValue);
|
void OnAttributeChanged(const String& name, const Value& oldValue);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Attribute<String> m_DisplayName;
|
||||||
Attribute<Dictionary::Ptr> m_Macros;
|
Attribute<Dictionary::Ptr> m_Macros;
|
||||||
Attribute<Dictionary::Ptr> m_Groups;
|
Attribute<Dictionary::Ptr> m_Groups;
|
||||||
};
|
};
|
||||||
|
@ -31,8 +31,6 @@ UserGroup::UserGroup(const Dictionary::Ptr& properties)
|
|||||||
: DynamicObject(properties)
|
: DynamicObject(properties)
|
||||||
{
|
{
|
||||||
RegisterAttribute("display_name", Attribute_Config, &m_DisplayName);
|
RegisterAttribute("display_name", Attribute_Config, &m_DisplayName);
|
||||||
RegisterAttribute("notes_url", Attribute_Config, &m_NotesUrl);
|
|
||||||
RegisterAttribute("action_url", Attribute_Config, &m_ActionUrl);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UserGroup::~UserGroup(void)
|
UserGroup::~UserGroup(void)
|
||||||
@ -53,16 +51,6 @@ String UserGroup::GetDisplayName(void) const
|
|||||||
return GetName();
|
return GetName();
|
||||||
}
|
}
|
||||||
|
|
||||||
String UserGroup::GetNotesUrl(void) const
|
|
||||||
{
|
|
||||||
return m_NotesUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
String UserGroup::GetActionUrl(void) const
|
|
||||||
{
|
|
||||||
return m_ActionUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @threadsafety Always.
|
* @threadsafety Always.
|
||||||
*/
|
*/
|
||||||
|
@ -40,8 +40,6 @@ public:
|
|||||||
static UserGroup::Ptr GetByName(const String& name);
|
static UserGroup::Ptr GetByName(const String& name);
|
||||||
|
|
||||||
String GetDisplayName(void) const;
|
String GetDisplayName(void) const;
|
||||||
String GetNotesUrl(void) const;
|
|
||||||
String GetActionUrl(void) const;
|
|
||||||
|
|
||||||
static set<User::Ptr> GetMembers(const UserGroup::Ptr& self);
|
static set<User::Ptr> GetMembers(const UserGroup::Ptr& self);
|
||||||
|
|
||||||
@ -52,8 +50,6 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Attribute<String> m_DisplayName;
|
Attribute<String> m_DisplayName;
|
||||||
Attribute<String> m_NotesUrl;
|
|
||||||
Attribute<String> m_ActionUrl;
|
|
||||||
|
|
||||||
static boost::mutex m_Mutex;
|
static boost::mutex m_Mutex;
|
||||||
static map<String, vector<User::WeakPtr> > m_MembersCache;
|
static map<String, vector<User::WeakPtr> > m_MembersCache;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user