mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
Ticket #269: Complete some TODO items, replace with others.
This commit is contained in:
@@ -72,12 +72,6 @@ public class MySQLConnection extends AbstractConnection {
|
||||
@Inject
|
||||
private ConnectionService connectionService;
|
||||
|
||||
/**
|
||||
* Set of all currently active connections.
|
||||
*/
|
||||
@Inject
|
||||
private ActiveConnectionSet activeConnectionSet;
|
||||
|
||||
/**
|
||||
* Create a default, empty connection.
|
||||
*/
|
||||
|
@@ -501,40 +501,17 @@ public class UserDirectory implements Directory<String, net.sourceforge.guacamol
|
||||
private void createSystemPermissions(int user_id,
|
||||
Collection<SystemPermission> permissions) {
|
||||
|
||||
// If no permissions given, stop now
|
||||
if(permissions.isEmpty())
|
||||
return;
|
||||
|
||||
// Build list of requested system permissions
|
||||
List<String> systemPermissionTypes = new ArrayList<String>();
|
||||
// Insert all requested permissions
|
||||
for (SystemPermission permission : permissions) {
|
||||
|
||||
switch (permission.getType()) { // TODO: Move this into MySQLConstants
|
||||
|
||||
// Create connection permission
|
||||
case CREATE_CONNECTION:
|
||||
systemPermissionTypes.add(MySQLConstants.SYSTEM_CONNECTION_CREATE);
|
||||
break;
|
||||
|
||||
// Create user permission
|
||||
case CREATE_USER:
|
||||
systemPermissionTypes.add(MySQLConstants.SYSTEM_USER_CREATE);
|
||||
break;
|
||||
|
||||
// Fail if unexpected type encountered
|
||||
default:
|
||||
assert false : "Unsupported type: " + permission.getType();
|
||||
|
||||
}
|
||||
|
||||
} // end for each system permission
|
||||
|
||||
// Finally, insert any NEW system permissions for this user
|
||||
for (String systemPermissionType : systemPermissionTypes) {
|
||||
|
||||
// Insert permission
|
||||
SystemPermissionKey newSystemPermission = new SystemPermissionKey();
|
||||
newSystemPermission.setUser_id(user_id);
|
||||
newSystemPermission.setPermission(systemPermissionType);
|
||||
newSystemPermission.setPermission(MySQLConstants.getSystemConstant(permission.getType()));
|
||||
systemPermissionDAO.insert(newSystemPermission);
|
||||
|
||||
}
|
||||
@@ -552,34 +529,16 @@ public class UserDirectory implements Directory<String, net.sourceforge.guacamol
|
||||
private void deleteSystemPermissions(int user_id,
|
||||
Collection<SystemPermission> permissions) {
|
||||
|
||||
// If no permissions given, stop now
|
||||
if (permissions.isEmpty())
|
||||
return;
|
||||
|
||||
// Build list of requested system permissions
|
||||
List<String> systemPermissionTypes = new ArrayList<String>();
|
||||
for (SystemPermission permission : permissions) {
|
||||
for (SystemPermission permission : permissions)
|
||||
systemPermissionTypes.add(MySQLConstants.getSystemConstant(permission.getType()));
|
||||
|
||||
switch (permission.getType()) {
|
||||
|
||||
// Create connection permission
|
||||
case CREATE_CONNECTION:
|
||||
systemPermissionTypes.add(MySQLConstants.SYSTEM_CONNECTION_CREATE);
|
||||
break;
|
||||
|
||||
// Create user permission
|
||||
case CREATE_USER:
|
||||
systemPermissionTypes.add(MySQLConstants.SYSTEM_USER_CREATE);
|
||||
break;
|
||||
|
||||
// Fail if unexpected type encountered
|
||||
default:
|
||||
assert false : "Unsupported type: " + permission.getType();
|
||||
|
||||
}
|
||||
|
||||
} // end for each system permission
|
||||
|
||||
// Finally, delete the requested system permissions for this user
|
||||
// Delete the requested system permissions for this user
|
||||
SystemPermissionExample systemPermissionExample = new SystemPermissionExample();
|
||||
systemPermissionExample.createCriteria().andUser_idEqualTo(user_id)
|
||||
.andPermissionIn(systemPermissionTypes);
|
||||
|
@@ -259,7 +259,7 @@ public class ConnectionService {
|
||||
connection.getConnection_id(),
|
||||
connection.getConnection_name(),
|
||||
config,
|
||||
Collections.EMPTY_LIST // TODO: Read history
|
||||
retrieveHistory(connection.getConnection_id())
|
||||
);
|
||||
|
||||
return mySQLConnection;
|
||||
@@ -333,6 +333,8 @@ public class ConnectionService {
|
||||
// Mark this connection as active
|
||||
activeConnectionSet.add(connection.getConnectionID());
|
||||
|
||||
// TODO: Actually update history...
|
||||
|
||||
// Return new MySQLGuacamoleSocket
|
||||
MySQLGuacamoleSocket mySQLGuacamoleSocket = mySQLGuacamoleSocketProvider.get();
|
||||
mySQLGuacamoleSocket.init(socket, connection.getConnectionID());
|
||||
|
@@ -307,8 +307,8 @@ public class PermissionCheckService {
|
||||
* given ID.
|
||||
*
|
||||
* @param userID The ID of the user to retrieve permissions of.
|
||||
* @return A set of all user permissions granted to the user having the
|
||||
* given ID.
|
||||
* @return A set of all connection permissions granted to the user having
|
||||
* the given ID.
|
||||
*/
|
||||
public Set<ConnectionPermission> retrieveConnectionPermissions(int userID) {
|
||||
|
||||
@@ -348,6 +348,44 @@ public class PermissionCheckService {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves all system permissions granted to the user having the
|
||||
* given ID.
|
||||
*
|
||||
* @param userID The ID of the user to retrieve permissions of.
|
||||
* @return A set of all system permissions granted to the user having the
|
||||
* given ID.
|
||||
*/
|
||||
public Set<SystemPermission> retrieveSystemPermissions(int userID) {
|
||||
|
||||
// Set of all permissions
|
||||
Set<SystemPermission> permissions = new HashSet<SystemPermission>();
|
||||
|
||||
// And finally, system permissions
|
||||
SystemPermissionExample systemPermissionExample = new SystemPermissionExample();
|
||||
systemPermissionExample.createCriteria().andUser_idEqualTo(userID);
|
||||
List<SystemPermissionKey> systemPermissions =
|
||||
systemPermissionDAO.selectByExample(systemPermissionExample);
|
||||
for(SystemPermissionKey systemPermission : systemPermissions) {
|
||||
|
||||
// User creation permission
|
||||
if(systemPermission.getPermission().equals(MySQLConstants.SYSTEM_USER_CREATE))
|
||||
permissions.add(new SystemPermission(SystemPermission.Type.CREATE_USER));
|
||||
|
||||
// System creation permission
|
||||
else if(systemPermission.getPermission().equals(MySQLConstants.SYSTEM_CONNECTION_CREATE))
|
||||
permissions.add(new SystemPermission(SystemPermission.Type.CREATE_CONNECTION));
|
||||
|
||||
// System administration permission
|
||||
else if(systemPermission.getPermission().equals(MySQLConstants.SYSTEM_ADMINISTER))
|
||||
permissions.add(new SystemPermission(SystemPermission.Type.ADMINISTER));
|
||||
|
||||
}
|
||||
|
||||
return permissions;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves all permissions granted to the user having the given ID.
|
||||
*
|
||||
@@ -366,28 +404,8 @@ public class PermissionCheckService {
|
||||
// Add connection permissions
|
||||
allPermissions.addAll(retrieveConnectionPermissions(userID));
|
||||
|
||||
// TODO: Move to retrieveSystemPermissions()
|
||||
|
||||
// And finally, system permissions
|
||||
SystemPermissionExample systemPermissionExample = new SystemPermissionExample();
|
||||
systemPermissionExample.createCriteria().andUser_idEqualTo(userID);
|
||||
List<SystemPermissionKey> systemPermissions =
|
||||
systemPermissionDAO.selectByExample(systemPermissionExample);
|
||||
for(SystemPermissionKey systemPermission : systemPermissions) {
|
||||
|
||||
// User creation permission
|
||||
if(systemPermission.getPermission().equals(MySQLConstants.SYSTEM_USER_CREATE))
|
||||
allPermissions.add(new SystemPermission(SystemPermission.Type.CREATE_USER));
|
||||
|
||||
// System creation permission
|
||||
else if(systemPermission.getPermission().equals(MySQLConstants.SYSTEM_CONNECTION_CREATE))
|
||||
allPermissions.add(new SystemPermission(SystemPermission.Type.CREATE_CONNECTION));
|
||||
|
||||
// System administration permission
|
||||
else if(systemPermission.getPermission().equals(MySQLConstants.SYSTEM_ADMINISTER))
|
||||
allPermissions.add(new SystemPermission(SystemPermission.Type.ADMINISTER));
|
||||
|
||||
}
|
||||
// Add system permissions
|
||||
allPermissions.addAll(retrieveSystemPermissions(userID));
|
||||
|
||||
return allPermissions;
|
||||
}
|
||||
|
Reference in New Issue
Block a user