diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json
index cfba2ae4f3..b2a749a66d 100644
--- a/domain-server/resources/describe-settings.json
+++ b/domain-server/resources/describe-settings.json
@@ -395,7 +395,7 @@
},
{
"label": "Permissions ?",
- "span": 6
+ "span": 7
}
],
@@ -445,6 +445,13 @@
"type": "checkbox",
"editable": true,
"default": false
+ },
+ {
+ "name": "id_can_kick",
+ "label": "Kick Users",
+ "type": "checkbox",
+ "editable": true,
+ "default": false
}
],
@@ -468,7 +475,7 @@
},
{
"label": "Permissions ?",
- "span": 6
+ "span": 7
}
],
@@ -543,6 +550,13 @@
"type": "checkbox",
"editable": true,
"default": false
+ },
+ {
+ "name": "id_can_kick",
+ "label": "Kick Users",
+ "type": "checkbox",
+ "editable": true,
+ "default": false
}
]
},
@@ -563,7 +577,7 @@
},
{
"label": "Permissions ?",
- "span": 6
+ "span": 7
}
],
@@ -635,6 +649,13 @@
"type": "checkbox",
"editable": true,
"default": false
+ },
+ {
+ "name": "id_can_kick",
+ "label": "Kick Users",
+ "type": "checkbox",
+ "editable": true,
+ "default": false
}
]
},
@@ -650,7 +671,7 @@
},
{
"label": "Permissions ?",
- "span": 6
+ "span": 7
}
],
@@ -700,6 +721,13 @@
"type": "checkbox",
"editable": true,
"default": false
+ },
+ {
+ "name": "id_can_kick",
+ "label": "Kick Users",
+ "type": "checkbox",
+ "editable": true,
+ "default": false
}
]
},
@@ -716,7 +744,7 @@
},
{
"label": "Permissions ?",
- "span": 6
+ "span": 7
}
],
@@ -766,6 +794,13 @@
"type": "checkbox",
"editable": true,
"default": false
+ },
+ {
+ "name": "id_can_kick",
+ "label": "Kick Users",
+ "type": "checkbox",
+ "editable": true,
+ "default": false
}
]
}
diff --git a/libraries/networking/src/NodePermissions.cpp b/libraries/networking/src/NodePermissions.cpp
index a815884dc5..a1d4fc182e 100644
--- a/libraries/networking/src/NodePermissions.cpp
+++ b/libraries/networking/src/NodePermissions.cpp
@@ -44,6 +44,7 @@ NodePermissions::NodePermissions(QMap perms) {
permissions |= perms["id_can_write_to_asset_server"].toBool() ? Permission::canWriteToAssetServer : Permission::none;
permissions |= perms["id_can_connect_past_max_capacity"].toBool() ?
Permission::canConnectPastMaxCapacity : Permission::none;
+ permissions |= perms["id_can_kick"].toBool() ? Permission::canKick : Permission::none;
}
QVariant NodePermissions::toVariant(QHash groupRanks) {
@@ -63,6 +64,7 @@ QVariant NodePermissions::toVariant(QHash groupRanks) {
values["id_can_rez_tmp"] = can(Permission::canRezTemporaryEntities);
values["id_can_write_to_asset_server"] = can(Permission::canWriteToAssetServer);
values["id_can_connect_past_max_capacity"] = can(Permission::canConnectPastMaxCapacity);
+ values["id_can_kick"] = can(Permission::canKick);
return QVariant(values);
}
@@ -123,6 +125,9 @@ QDebug operator<<(QDebug debug, const NodePermissions& perms) {
if (perms.can(NodePermissions::Permission::canConnectPastMaxCapacity)) {
debug << " ignore-max-cap";
}
+ if (perms.can(NodePermissions::Permission::canKick)) {
+ debug << " kick";
+ }
debug.nospace() << "]";
return debug.nospace();
}
diff --git a/libraries/networking/src/NodePermissions.h b/libraries/networking/src/NodePermissions.h
index 6f4309a447..5d2755f9b5 100644
--- a/libraries/networking/src/NodePermissions.h
+++ b/libraries/networking/src/NodePermissions.h
@@ -63,7 +63,8 @@ public:
canRezPermanentEntities = 4,
canRezTemporaryEntities = 8,
canWriteToAssetServer = 16,
- canConnectPastMaxCapacity = 32
+ canConnectPastMaxCapacity = 32,
+ canKick = 64
};
Q_DECLARE_FLAGS(Permissions, Permission)
Permissions permissions;