diff --git a/src/gui/FWBTree.cpp b/src/gui/FWBTree.cpp
index 65faf4d05..15f626f4c 100644
--- a/src/gui/FWBTree.cpp
+++ b/src/gui/FWBTree.cpp
@@ -79,6 +79,7 @@ const char* systemObjects[] = {
"Services/TCP",
"Services/UDP",
"Services/TagServices",
+ "Services/User",
"Firewalls",
diff --git a/src/gui/FWObjectPropertiesFactory.cpp b/src/gui/FWObjectPropertiesFactory.cpp
index cb1213d4e..95463c34b 100644
--- a/src/gui/FWObjectPropertiesFactory.cpp
+++ b/src/gui/FWObjectPropertiesFactory.cpp
@@ -63,6 +63,7 @@
#include "fwbuilder/TCPService.h"
#include "fwbuilder/UDPService.h"
#include "fwbuilder/TagService.h"
+#include "fwbuilder/UserService.h"
#include "fwbuilder/Interval.h"
@@ -198,6 +199,10 @@ QString FWObjectPropertiesFactory::getObjectProperties(FWObject *obj)
} else if (TagService::isA(obj))
{
str << "Pattern: \"" << obj->getStr("tagcode").c_str() << "\"" ;
+ } else if (UserService::isA(obj))
+ {
+ const UserService* user_srv = UserService::constcast(obj);
+ str << "User id: \"" << user_srv->getUserId().c_str() << "\"" ;
} else if (Interval::isA(obj))
{
@@ -483,6 +488,10 @@ QString FWObjectPropertiesFactory::getObjectPropertiesDetailed(FWObject *obj,
} else if (TagService::isA(obj))
{
str += QObject::tr("Pattern: \"%1\"").arg(obj->getStr("tagcode").c_str());
+ } else if (UserService::isA(obj))
+ {
+ const UserService* user_srv = UserService::constcast(obj);
+ str += QObject::tr("User id: \"%1\"").arg(user_srv->getUserId().c_str());
} else if (Interval::isA(obj))
{
diff --git a/src/gui/Icons/user-neg_16.png b/src/gui/Icons/user-neg_16.png
new file mode 100644
index 000000000..95e2bf8cc
Binary files /dev/null and b/src/gui/Icons/user-neg_16.png differ
diff --git a/src/gui/Icons/user-neg_25.png b/src/gui/Icons/user-neg_25.png
new file mode 100644
index 000000000..d81e8c7f2
Binary files /dev/null and b/src/gui/Icons/user-neg_25.png differ
diff --git a/src/gui/Icons/user-ref_25.png b/src/gui/Icons/user-ref_25.png
new file mode 100644
index 000000000..8edef1714
Binary files /dev/null and b/src/gui/Icons/user-ref_25.png differ
diff --git a/src/gui/Icons/user_16.png b/src/gui/Icons/user_16.png
new file mode 100644
index 000000000..a9af89039
Binary files /dev/null and b/src/gui/Icons/user_16.png differ
diff --git a/src/gui/Icons/user_25.png b/src/gui/Icons/user_25.png
new file mode 100644
index 000000000..7f265991b
Binary files /dev/null and b/src/gui/Icons/user_25.png differ
diff --git a/src/gui/MainRes.qrc b/src/gui/MainRes.qrc
index bc18ad8ea..c7528f8da 100644
--- a/src/gui/MainRes.qrc
+++ b/src/gui/MainRes.qrc
@@ -181,6 +181,11 @@
Icons/service-udp-ref_25.png
Icons/service-udp_16.png
Icons/service-udp_25.png
+ Icons/user-neg_25.png
+ Icons/user-neg_16.png
+ Icons/user-ref_25.png
+ Icons/user_16.png
+ Icons/user_25.png
Icons/stop.png
Icons/uncheck.png
Icons/undo.png
diff --git a/src/res/objects_init.xml b/src/res/objects_init.xml
index f9355d4fb..3a64ecefa 100644
--- a/src/res/objects_init.xml
+++ b/src/res/objects_init.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/src/res/resources.xml b/src/res/resources.xml
index 64ef26a9c..92fb5204b 100644
--- a/src/res/resources.xml
+++ b/src/res/resources.xml
@@ -359,6 +359,14 @@
service-custom_16.png
+
+ User
+ user_25.png
+ user-neg_25.png
+ user-ref_25.png
+ user_16.png
+
+
NAT
blank_2x16.png
diff --git a/src/res/resources.xml.in b/src/res/resources.xml.in
index a19cf4f14..bd5490965 100644
--- a/src/res/resources.xml.in
+++ b/src/res/resources.xml.in
@@ -359,6 +359,14 @@
service-custom_16.png
+
+ User
+ user_25.png
+ user-neg_25.png
+ user-ref_25.png
+ user_16.png
+
+
NAT
blank_2x16.png
diff --git a/src/res/templates.xml b/src/res/templates.xml
index 46a687204..2e5f91542 100644
--- a/src/res/templates.xml
+++ b/src/res/templates.xml
@@ -1,6 +1,6 @@
-
+