mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
GUAC-800: Use Forms for attributes, not just Fields.
This commit is contained in:
@@ -38,6 +38,7 @@ import org.glyptodon.guacamole.auth.jdbc.permission.ConnectionGroupPermissionSer
|
|||||||
import org.glyptodon.guacamole.auth.jdbc.permission.ConnectionPermissionService;
|
import org.glyptodon.guacamole.auth.jdbc.permission.ConnectionPermissionService;
|
||||||
import org.glyptodon.guacamole.auth.jdbc.permission.UserPermissionService;
|
import org.glyptodon.guacamole.auth.jdbc.permission.UserPermissionService;
|
||||||
import org.glyptodon.guacamole.form.Field;
|
import org.glyptodon.guacamole.form.Field;
|
||||||
|
import org.glyptodon.guacamole.form.Form;
|
||||||
import org.glyptodon.guacamole.net.auth.User;
|
import org.glyptodon.guacamole.net.auth.User;
|
||||||
import org.glyptodon.guacamole.net.auth.permission.ObjectPermissionSet;
|
import org.glyptodon.guacamole.net.auth.permission.ObjectPermissionSet;
|
||||||
import org.glyptodon.guacamole.net.auth.permission.SystemPermission;
|
import org.glyptodon.guacamole.net.auth.permission.SystemPermission;
|
||||||
@@ -58,15 +59,19 @@ public class ModeledUser extends ModeledDirectoryObject<UserModel> implements Us
|
|||||||
public static final String DISABLED_ATTRIBUTE_NAME = "disabled";
|
public static final String DISABLED_ATTRIBUTE_NAME = "disabled";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A typed field corresponding to the disabled attribute of a user.
|
* All attributes related to restricting user accounts, within a logical
|
||||||
|
* form.
|
||||||
*/
|
*/
|
||||||
public static final Field DISABLED_ATTRIBUTE = new Field(DISABLED_ATTRIBUTE_NAME, "Disabled", "true");
|
public static final Form ACCOUNT_RESTRICTIONS = new Form("restrictions", "Account Restrictions", Arrays.asList(
|
||||||
|
new Field(DISABLED_ATTRIBUTE_NAME, "Disabled", "true")
|
||||||
|
));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* All possible attributes of user objects.
|
* All possible attributes of user objects organized as individual,
|
||||||
|
* logical forms.
|
||||||
*/
|
*/
|
||||||
public static final Collection<Field> ATTRIBUTES = Collections.unmodifiableCollection(Arrays.asList(
|
public static final Collection<Form> ATTRIBUTES = Collections.unmodifiableCollection(Arrays.asList(
|
||||||
DISABLED_ATTRIBUTE
|
ACCOUNT_RESTRICTIONS
|
||||||
));
|
));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -33,7 +33,7 @@ import java.util.Collections;
|
|||||||
import org.glyptodon.guacamole.GuacamoleException;
|
import org.glyptodon.guacamole.GuacamoleException;
|
||||||
import org.glyptodon.guacamole.auth.jdbc.base.RestrictedObject;
|
import org.glyptodon.guacamole.auth.jdbc.base.RestrictedObject;
|
||||||
import org.glyptodon.guacamole.auth.jdbc.activeconnection.ActiveConnectionDirectory;
|
import org.glyptodon.guacamole.auth.jdbc.activeconnection.ActiveConnectionDirectory;
|
||||||
import org.glyptodon.guacamole.form.Field;
|
import org.glyptodon.guacamole.form.Form;
|
||||||
import org.glyptodon.guacamole.net.auth.ActiveConnection;
|
import org.glyptodon.guacamole.net.auth.ActiveConnection;
|
||||||
import org.glyptodon.guacamole.net.auth.Connection;
|
import org.glyptodon.guacamole.net.auth.Connection;
|
||||||
import org.glyptodon.guacamole.net.auth.ConnectionGroup;
|
import org.glyptodon.guacamole.net.auth.ConnectionGroup;
|
||||||
@@ -134,18 +134,18 @@ public class UserContext extends RestrictedObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Field> getUserAttributes() {
|
public Collection<Form> getUserAttributes() {
|
||||||
return ModeledUser.ATTRIBUTES;
|
return ModeledUser.ATTRIBUTES;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Field> getConnectionAttributes() {
|
public Collection<Form> getConnectionAttributes() {
|
||||||
return Collections.<Field>emptyList();
|
return Collections.<Form>emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Field> getConnectionGroupAttributes() {
|
public Collection<Form> getConnectionGroupAttributes() {
|
||||||
return Collections.<Field>emptyList();
|
return Collections.<Form>emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"USER_ATTRIBUTES" : {
|
"USER_ATTRIBUTES" : {
|
||||||
"FIELD_HEADER_DISABLED" : "Disabled:"
|
|
||||||
|
"FIELD_HEADER_DISABLED" : "Login disabled:",
|
||||||
|
|
||||||
|
"SECTION_HEADER_RESTRICTIONS" : "Account Restrictions"
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,7 +24,7 @@ package org.glyptodon.guacamole.net.auth;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import org.glyptodon.guacamole.GuacamoleException;
|
import org.glyptodon.guacamole.GuacamoleException;
|
||||||
import org.glyptodon.guacamole.form.Field;
|
import org.glyptodon.guacamole.form.Form;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The context of an active user. The functions of this class enforce all
|
* The context of an active user. The functions of this class enforce all
|
||||||
@@ -121,7 +121,7 @@ public interface UserContext {
|
|||||||
* @return
|
* @return
|
||||||
* A collection of all attributes applicable to users.
|
* A collection of all attributes applicable to users.
|
||||||
*/
|
*/
|
||||||
Collection<Field> getUserAttributes();
|
Collection<Form> getUserAttributes();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves a collection of all attributes applicable to connections. This
|
* Retrieves a collection of all attributes applicable to connections. This
|
||||||
@@ -132,7 +132,7 @@ public interface UserContext {
|
|||||||
* @return
|
* @return
|
||||||
* A collection of all attributes applicable to connections.
|
* A collection of all attributes applicable to connections.
|
||||||
*/
|
*/
|
||||||
Collection<Field> getConnectionAttributes();
|
Collection<Form> getConnectionAttributes();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves a collection of all attributes applicable to connection
|
* Retrieves a collection of all attributes applicable to connection
|
||||||
@@ -143,6 +143,6 @@ public interface UserContext {
|
|||||||
* @return
|
* @return
|
||||||
* A collection of all attributes applicable to connection groups.
|
* A collection of all attributes applicable to connection groups.
|
||||||
*/
|
*/
|
||||||
Collection<Field> getConnectionGroupAttributes();
|
Collection<Form> getConnectionGroupAttributes();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,7 @@ import java.util.Collections;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import org.glyptodon.guacamole.GuacamoleException;
|
import org.glyptodon.guacamole.GuacamoleException;
|
||||||
import org.glyptodon.guacamole.form.Field;
|
import org.glyptodon.guacamole.form.Form;
|
||||||
import org.glyptodon.guacamole.net.auth.ActiveConnection;
|
import org.glyptodon.guacamole.net.auth.ActiveConnection;
|
||||||
import org.glyptodon.guacamole.net.auth.Connection;
|
import org.glyptodon.guacamole.net.auth.Connection;
|
||||||
import org.glyptodon.guacamole.net.auth.ConnectionGroup;
|
import org.glyptodon.guacamole.net.auth.ConnectionGroup;
|
||||||
@@ -176,18 +176,18 @@ public class SimpleUserContext implements UserContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Field> getUserAttributes() {
|
public Collection<Form> getUserAttributes() {
|
||||||
return Collections.<Field>emptyList();
|
return Collections.<Form>emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Field> getConnectionAttributes() {
|
public Collection<Form> getConnectionAttributes() {
|
||||||
return Collections.<Field>emptyList();
|
return Collections.<Form>emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Field> getConnectionGroupAttributes() {
|
public Collection<Form> getConnectionGroupAttributes() {
|
||||||
return Collections.<Field>emptyList();
|
return Collections.<Form>emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import javax.ws.rs.core.MediaType;
|
|||||||
import org.glyptodon.guacamole.GuacamoleException;
|
import org.glyptodon.guacamole.GuacamoleException;
|
||||||
import org.glyptodon.guacamole.environment.Environment;
|
import org.glyptodon.guacamole.environment.Environment;
|
||||||
import org.glyptodon.guacamole.environment.LocalEnvironment;
|
import org.glyptodon.guacamole.environment.LocalEnvironment;
|
||||||
import org.glyptodon.guacamole.form.Field;
|
import org.glyptodon.guacamole.form.Form;
|
||||||
import org.glyptodon.guacamole.net.auth.UserContext;
|
import org.glyptodon.guacamole.net.auth.UserContext;
|
||||||
import org.glyptodon.guacamole.net.basic.rest.AuthProviderRESTExposure;
|
import org.glyptodon.guacamole.net.basic.rest.AuthProviderRESTExposure;
|
||||||
import org.glyptodon.guacamole.net.basic.rest.auth.AuthenticationService;
|
import org.glyptodon.guacamole.net.basic.rest.auth.AuthenticationService;
|
||||||
@@ -65,8 +65,8 @@ public class SchemaRESTService {
|
|||||||
* performing the operation.
|
* performing the operation.
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
* A collection of form fields which describe the possible attributes
|
* A collection of forms which describe the possible attributes of a
|
||||||
* of a user object.
|
* user object.
|
||||||
*
|
*
|
||||||
* @throws GuacamoleException
|
* @throws GuacamoleException
|
||||||
* If an error occurs while retrieving the possible attributes.
|
* If an error occurs while retrieving the possible attributes.
|
||||||
@@ -74,7 +74,7 @@ public class SchemaRESTService {
|
|||||||
@GET
|
@GET
|
||||||
@Path("/users/attributes")
|
@Path("/users/attributes")
|
||||||
@AuthProviderRESTExposure
|
@AuthProviderRESTExposure
|
||||||
public Collection<Field> getUserAttributes(@QueryParam("token") String authToken) throws GuacamoleException {
|
public Collection<Form> getUserAttributes(@QueryParam("token") String authToken) throws GuacamoleException {
|
||||||
|
|
||||||
// Retrieve all possible user attributes
|
// Retrieve all possible user attributes
|
||||||
UserContext userContext = authenticationService.getUserContext(authToken);
|
UserContext userContext = authenticationService.getUserContext(authToken);
|
||||||
@@ -90,8 +90,8 @@ public class SchemaRESTService {
|
|||||||
* performing the operation.
|
* performing the operation.
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
* A collection of form fields which describe the possible attributes
|
* A collection of forms which describe the possible attributes of a
|
||||||
* of a connection object.
|
* connection object.
|
||||||
*
|
*
|
||||||
* @throws GuacamoleException
|
* @throws GuacamoleException
|
||||||
* If an error occurs while retrieving the possible attributes.
|
* If an error occurs while retrieving the possible attributes.
|
||||||
@@ -99,7 +99,7 @@ public class SchemaRESTService {
|
|||||||
@GET
|
@GET
|
||||||
@Path("/connections/attributes")
|
@Path("/connections/attributes")
|
||||||
@AuthProviderRESTExposure
|
@AuthProviderRESTExposure
|
||||||
public Collection<Field> getConnectionAttributes(@QueryParam("token") String authToken) throws GuacamoleException {
|
public Collection<Form> getConnectionAttributes(@QueryParam("token") String authToken) throws GuacamoleException {
|
||||||
|
|
||||||
// Retrieve all possible connection attributes
|
// Retrieve all possible connection attributes
|
||||||
UserContext userContext = authenticationService.getUserContext(authToken);
|
UserContext userContext = authenticationService.getUserContext(authToken);
|
||||||
@@ -115,8 +115,8 @@ public class SchemaRESTService {
|
|||||||
* performing the operation.
|
* performing the operation.
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
* A collection of form fields which describe the possible attributes
|
* A collection of forms which describe the possible attributes of a
|
||||||
* of a connection group object.
|
* connection group object.
|
||||||
*
|
*
|
||||||
* @throws GuacamoleException
|
* @throws GuacamoleException
|
||||||
* If an error occurs while retrieving the possible attributes.
|
* If an error occurs while retrieving the possible attributes.
|
||||||
@@ -124,7 +124,7 @@ public class SchemaRESTService {
|
|||||||
@GET
|
@GET
|
||||||
@Path("/connectionGroups/attributes")
|
@Path("/connectionGroups/attributes")
|
||||||
@AuthProviderRESTExposure
|
@AuthProviderRESTExposure
|
||||||
public Collection<Field> getConnectionGroupAttributes(@QueryParam("token") String authToken) throws GuacamoleException {
|
public Collection<Form> getConnectionGroupAttributes(@QueryParam("token") String authToken) throws GuacamoleException {
|
||||||
|
|
||||||
// Retrieve all possible connection group attributes
|
// Retrieve all possible connection group attributes
|
||||||
UserContext userContext = authenticationService.getUserContext(authToken);
|
UserContext userContext = authenticationService.getUserContext(authToken);
|
||||||
|
@@ -105,9 +105,10 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* All available user attributes. This is only the set of attribute
|
* All available user attributes. This is only the set of attribute
|
||||||
* definitions, not attribute values.
|
* definitions, organized as logical groupings of attributes, not attribute
|
||||||
|
* values.
|
||||||
*
|
*
|
||||||
* @type Field[]
|
* @type Form[]
|
||||||
*/
|
*/
|
||||||
$scope.attributes = null;
|
$scope.attributes = null;
|
||||||
|
|
||||||
|
@@ -36,12 +36,13 @@ angular.module('rest').factory('schemaService', ['$injector',
|
|||||||
/**
|
/**
|
||||||
* Makes a request to the REST API to get the list of available attributes
|
* Makes a request to the REST API to get the list of available attributes
|
||||||
* for user objects, returning a promise that provides an array of
|
* for user objects, returning a promise that provides an array of
|
||||||
* @link{Field} objects if successful. Each element of the array describes
|
* @link{Form} objects if successful. Each element of the array describes
|
||||||
* a possible attribute.
|
* a logical grouping of possible attributes.
|
||||||
*
|
*
|
||||||
* @returns {Promise.<Field[]>}
|
* @returns {Promise.<Form[]>}
|
||||||
* A promise which will resolve with an array of @link{Field}
|
* A promise which will resolve with an array of @link{Form}
|
||||||
* objects, where each @link{Field} describes a possible attribute.
|
* objects, where each @link{Form} describes a logical grouping of
|
||||||
|
* possible attributes.
|
||||||
*/
|
*/
|
||||||
service.getUserAttributes = function getUserAttributes() {
|
service.getUserAttributes = function getUserAttributes() {
|
||||||
|
|
||||||
@@ -63,12 +64,13 @@ angular.module('rest').factory('schemaService', ['$injector',
|
|||||||
/**
|
/**
|
||||||
* Makes a request to the REST API to get the list of available attributes
|
* Makes a request to the REST API to get the list of available attributes
|
||||||
* for connection objects, returning a promise that provides an array of
|
* for connection objects, returning a promise that provides an array of
|
||||||
* @link{Field} objects if successful. Each element of the array describes
|
* @link{Form} objects if successful. Each element of the array describes
|
||||||
* a possible attribute.
|
* a logical grouping of possible attributes.
|
||||||
*
|
*
|
||||||
* @returns {Promise.<Field[]>}
|
* @returns {Promise.<Form[]>}
|
||||||
* A promise which will resolve with an array of @link{Field}
|
* A promise which will resolve with an array of @link{Form}
|
||||||
* objects, where each @link{Field} describes a possible attribute.
|
* objects, where each @link{Form} describes a logical grouping of
|
||||||
|
* possible attributes.
|
||||||
*/
|
*/
|
||||||
service.getConnectionAttributes = function getConnectionAttributes() {
|
service.getConnectionAttributes = function getConnectionAttributes() {
|
||||||
|
|
||||||
@@ -90,12 +92,13 @@ angular.module('rest').factory('schemaService', ['$injector',
|
|||||||
/**
|
/**
|
||||||
* Makes a request to the REST API to get the list of available attributes
|
* Makes a request to the REST API to get the list of available attributes
|
||||||
* for connection group objects, returning a promise that provides an array
|
* for connection group objects, returning a promise that provides an array
|
||||||
* of @link{Field} objects if successful. Each element of the array
|
* of @link{Form} objects if successful. Each element of the array
|
||||||
* describes a possible attribute.
|
* a logical grouping of possible attributes.
|
||||||
*
|
*
|
||||||
* @returns {Promise.<Field[]>}
|
* @returns {Promise.<Form[]>}
|
||||||
* A promise which will resolve with an array of @link{Field}
|
* A promise which will resolve with an array of @link{Form}
|
||||||
* objects, where each @link{Field} describes a possible attribute.
|
* objects, where each @link{Form} describes a logical grouping of
|
||||||
|
* possible attributes.
|
||||||
*/
|
*/
|
||||||
service.getConnectionGroupAttributes = function getConnectionGroupAttributes() {
|
service.getConnectionGroupAttributes = function getConnectionGroupAttributes() {
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user