diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json index e1334ee46f..c888fa301b 100644 --- a/domain-server/resources/describe-settings.json +++ b/domain-server/resources/describe-settings.json @@ -1,5 +1,5 @@ { - "version": 1.5, + "version": 1.7, "settings": [ { "name": "metaverse", @@ -384,18 +384,18 @@ "name": "standard_permissions", "type": "table", "label": "Domain-Wide User Permissions", - "help": "Indicate which users or groups can have which domain-wide permissions.", + "help": "Indicate which types of users can have which domain-wide permissions.", "caption": "Standard Permissions", "can_add_new_rows": false, "groups": [ { - "label": "User / Group", + "label": "Type of User", "span": 1 }, { "label": "Permissions ?", - "span": 6 + "span": 7 } ], @@ -409,7 +409,7 @@ "label": "Connect", "type": "checkbox", "editable": true, - "default": true + "default": false }, { "name": "id_can_adjust_locks", @@ -445,6 +445,13 @@ "type": "checkbox", "editable": true, "default": false + }, + { + "name": "id_can_kick", + "label": "Kick Users", + "type": "checkbox", + "editable": true, + "default": false } ], @@ -452,33 +459,62 @@ "non-deletable-row-values": ["localhost", "anonymous", "logged-in"] }, { - "name": "permissions", + "name": "group_permissions", "type": "table", - "caption": "Permissions for Specific Users", - "can_add_new_rows": true, + "caption": "Permissions for Users in Groups", + "categorize_by_key": "permissions_id", + "can_add_new_categories": true, + "can_add_new_rows": false, + "new_category_placeholder": "Add Group", + "new_category_message": "Save and reload to see ranks", "groups": [ { - "label": "User / Group", + "label": "Rank", "span": 1 }, { - "label": "Permissions ?", - "span": 6 + "label": "Permissions ?", + "span": 7 } ], "columns": [ { "name": "permissions_id", - "label": "" + "label": "Group Name", + "readonly": true, + "hidden": true + }, + { + "name": "rank_id", + "label": "Rank ID", + "readonly": true, + "hidden": true + }, + { + "name": "rank_order", + "label": "Rank Order", + "readonly": true, + "hidden": true + }, + { + "name": "rank_name", + "label": "", + "readonly": true + }, + { + "name": "group_id", + "label": "Group ID", + "readonly": true, + "hidden": true }, { "name": "id_can_connect", "label": "Connect", "type": "checkbox", "editable": true, - "default": true + "default": false }, { "name": "id_can_adjust_locks", @@ -514,6 +550,257 @@ "type": "checkbox", "editable": true, "default": false + }, + { + "name": "id_can_kick", + "label": "Kick Users", + "type": "checkbox", + "editable": true, + "default": false + } + ] + }, + { + "name": "group_forbiddens", + "type": "table", + "caption": "Permissions Denied to Users in Groups", + "categorize_by_key": "permissions_id", + "can_add_new_categories": true, + "can_add_new_rows": false, + "new_category_placeholder": "Add Blacklist Group", + "new_category_message": "Save and reload to see ranks", + + "groups": [ + { + "label": "Rank", + "span": 1 + }, + { + "label": "Permissions ?", + "span": 7 + } + ], + + "columns": [ + { + "name": "permissions_id", + "label": "Group Name", + "hidden": true + }, + { + "name": "rank_id", + "label": "Rank ID", + "hidden": true + }, + { + "name": "rank_order", + "label": "Rank Order", + "hidden": true + }, + { + "name": "rank_name", + "label": "", + "readonly": true + }, + { + "name": "group_id", + "label": "Group ID", + "readonly": true, + "hidden": true + }, + { + "name": "id_can_connect", + "label": "Connect", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_adjust_locks", + "label": "Lock / Unlock", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_rez", + "label": "Rez", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_rez_tmp", + "label": "Rez Temporary", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_write_to_asset_server", + "label": "Write Assets", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_connect_past_max_capacity", + "label": "Ignore Max Capacity", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_kick", + "label": "Kick Users", + "type": "checkbox", + "editable": true, + "default": false + } + ] + }, + { + "name": "ip_permissions", + "type": "table", + "caption": "Permissions for Users from IP Addresses", + "can_add_new_rows": true, + "groups": [ + { + "label": "IP Address", + "span": 1 + }, + { + "label": "Permissions ?", + "span": 7 + } + ], + + "columns": [ + { + "name": "permissions_id", + "label": "" + }, + { + "name": "id_can_connect", + "label": "Connect", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_adjust_locks", + "label": "Lock / Unlock", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_rez", + "label": "Rez", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_rez_tmp", + "label": "Rez Temporary", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_write_to_asset_server", + "label": "Write Assets", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_connect_past_max_capacity", + "label": "Ignore Max Capacity", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_kick", + "label": "Kick Users", + "type": "checkbox", + "editable": true, + "default": false + } + ] + }, + { + "name": "permissions", + "type": "table", + "caption": "Permissions for Specific Users", + "can_add_new_rows": true, + + "groups": [ + { + "label": "User", + "span": 1 + }, + { + "label": "Permissions ?", + "span": 7 + } + ], + + "columns": [ + { + "name": "permissions_id", + "label": "" + }, + { + "name": "id_can_connect", + "label": "Connect", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_adjust_locks", + "label": "Lock / Unlock", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_rez", + "label": "Rez", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_rez_tmp", + "label": "Rez Temporary", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_write_to_asset_server", + "label": "Write Assets", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_connect_past_max_capacity", + "label": "Ignore Max Capacity", + "type": "checkbox", + "editable": true, + "default": false + }, + { + "name": "id_can_kick", + "label": "Kick Users", + "type": "checkbox", + "editable": true, + "default": false } ] } diff --git a/domain-server/resources/web/css/style.css b/domain-server/resources/web/css/style.css index 2862feed87..ef967a47bf 100644 --- a/domain-server/resources/web/css/style.css +++ b/domain-server/resources/web/css/style.css @@ -3,6 +3,10 @@ body { padding-bottom: 30px; } +[hidden] { + display: none !important; +} + .table-lead .lead-line { background-color: black; } @@ -20,7 +24,9 @@ body { top: 40px; } -.table .value-row td, .table .inputs td { +.table .value-row td, +.table .value-category td, +.table .inputs td { vertical-align: middle; } @@ -31,6 +37,31 @@ body { margin-right: auto; } +.value-category:not(.inputs) { + font-weight: bold; + background: #f5f5f5; +} + +.table .value-category [message]::after { + content: attr(message); + font-style: italic; + font-weight: normal; +} + +.table .value-row.contracted, +.table .inputs.contracted { + display: none; +} + +.toggle-category { + cursor: pointer; +} + +.toggle-category-icon { + padding: 4px; + margin-right: 8px; +} + .glyphicon-remove { font-size: 24px; } @@ -44,15 +75,6 @@ span.port { color: #666666; } -.locked { - color: #428bca; -} - -.locked-table { - cursor: not-allowed; - background-color: #eee; -} - .advanced-setting { display: none; } @@ -133,7 +155,7 @@ table .headers + .headers td { color: #222; } -table[name="security.standard_permissions"] .headers td + td, table[name="security.permissions"] .headers td + td { +#security table .headers td + td { text-align: center; } diff --git a/domain-server/resources/web/settings/index.shtml b/domain-server/resources/web/settings/index.shtml index 3f969ef913..4c937d6139 100644 --- a/domain-server/resources/web/settings/index.shtml +++ b/domain-server/resources/web/settings/index.shtml @@ -57,15 +57,13 @@