mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-08 22:21:22 +00:00
Pre-select connections which the selected user can read. Do not allow connections to be altered if which we lack admin permissions.
This commit is contained in:
@@ -495,76 +495,45 @@ GuacAdmin.UserEditor = function(name, parameters) {
|
|||||||
|
|
||||||
var connections_section = GuacUI.createChildElement(sections, "dd");
|
var connections_section = GuacUI.createChildElement(sections, "dd");
|
||||||
|
|
||||||
// FIXME - only list connections with admin permission
|
// Construct group view for all readable connections
|
||||||
var group_view = new GuacUI.GroupView(GuacAdmin.cached_root_group, true);
|
var group_view = new GuacUI.GroupView(GuacAdmin.cached_root_group, true);
|
||||||
connections_section.appendChild(group_view.getElement());
|
connections_section.appendChild(group_view.getElement());
|
||||||
|
|
||||||
/*
|
// Update connection permissions when changed
|
||||||
// Actual paged connections list
|
group_view.onconnectionchange = function(connection, selected) {
|
||||||
var connections = GuacUI.createChildElement(
|
|
||||||
connections_section, "div", "list");
|
|
||||||
|
|
||||||
// Button div
|
var id = connection.id;
|
||||||
var connections_buttons = GuacUI.createChildElement(
|
|
||||||
connections_section, "div", "list-pager-buttons");
|
|
||||||
|
|
||||||
// Create pager which populates list
|
// Update permission deltas for ADDED permission
|
||||||
var connections_pager = new GuacUI.Pager(connections);
|
if (selected) {
|
||||||
|
added_perms.read_connection[id] = true;
|
||||||
|
if (removed_perms.read_connection[id])
|
||||||
|
delete removed_perms.read_connection[id];
|
||||||
|
}
|
||||||
|
|
||||||
// Add connections to pager
|
// Update permission deltas for REMOVED permission
|
||||||
var available_connections = GuacAdmin.cached_connections;
|
else {
|
||||||
for (var i=0; i<available_connections.length; i++) {
|
removed_perms.read_connection[id] = true;
|
||||||
|
if (added_perms.read_connection[id])
|
||||||
|
delete added_perms.read_connection[id];
|
||||||
|
}
|
||||||
|
|
||||||
// If no admin permission, do not list connection
|
};
|
||||||
var conn = available_connections[i].id;
|
|
||||||
|
// Set selectable and selected states based on current permissions
|
||||||
|
for (var conn_id in group_view.connections) {
|
||||||
|
|
||||||
|
// Pre-select connection if readable by chosen user
|
||||||
|
if (conn_id in user_perms.read_connection)
|
||||||
|
group_view.setConnectionValue(conn_id, true);
|
||||||
|
|
||||||
|
// If we lack permissions to admin this connection, disable it
|
||||||
if (!GuacAdmin.cached_permissions.administer &&
|
if (!GuacAdmin.cached_permissions.administer &&
|
||||||
!(conn in GuacAdmin.cached_permissions.administer_connection))
|
!(conn_id in GuacAdmin.cached_permissions.administer_connection))
|
||||||
continue;
|
group_view.setConnectionEnabled(conn_id, false);
|
||||||
|
|
||||||
var connection = GuacUI.createElement("div", "connection");
|
|
||||||
var connection_field = GuacUI.createChildElement(connection, "input");
|
|
||||||
var connection_name = GuacUI.createChildElement(connection, "span", "name");
|
|
||||||
|
|
||||||
connection_field.setAttribute("type", "checkbox");
|
|
||||||
connection_field.setAttribute("value", conn);
|
|
||||||
|
|
||||||
// Check checkbox if connection readable by selected user
|
|
||||||
if (conn in user_perms.read_connection)
|
|
||||||
connection_field.checked = true;
|
|
||||||
|
|
||||||
// Update selected connections when changed
|
|
||||||
connection_field.onclick = connection_field.onchange = function() {
|
|
||||||
|
|
||||||
// Update permission deltas for ADDED permission
|
|
||||||
if (this.checked) {
|
|
||||||
added_perms.read_connection[this.value] = true;
|
|
||||||
if (removed_perms.read_connection[this.value])
|
|
||||||
delete removed_perms.read_connection[this.value];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update permission deltas for REMOVED permission
|
|
||||||
else {
|
|
||||||
removed_perms.read_connection[this.value] = true;
|
|
||||||
if (added_perms.read_connection[this.value])
|
|
||||||
delete added_perms.read_connection[this.value];
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
connection_name.textContent = conn;
|
|
||||||
connections_pager.addElement(connection);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If more than one page, show buttons
|
|
||||||
if (connections_pager.last_page != 0)
|
|
||||||
connections_buttons.appendChild(connections_pager.getElement());
|
|
||||||
|
|
||||||
// Start at page 0
|
|
||||||
connections_pager.setPage(0);
|
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add save button
|
// Add save button
|
||||||
|
Reference in New Issue
Block a user