From f04996a53d09ab6690ae07a183c01bf2642edafc Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Mon, 25 Jul 2016 18:01:04 -0700 Subject: [PATCH] add the kick permission to domain server settings --- .../resources/describe-settings.json | 45 ++++++++++++++++--- libraries/networking/src/NodePermissions.cpp | 5 +++ libraries/networking/src/NodePermissions.h | 3 +- 3 files changed, 47 insertions(+), 6 deletions(-) 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;