Ticket #362: Cleaned up permission list code a bit.

This commit is contained in:
James Muehlner
2013-12-04 22:42:23 -08:00
parent 67ea6406eb
commit 6146aeba93
2 changed files with 7 additions and 2 deletions

View File

@@ -18,6 +18,7 @@ package org.glyptodon.guacamole.net.basic.rest.permission;
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.glyptodon.guacamole.net.auth.permission.ConnectionGroupPermission; import org.glyptodon.guacamole.net.auth.permission.ConnectionGroupPermission;
import org.glyptodon.guacamole.net.auth.permission.ConnectionPermission; import org.glyptodon.guacamole.net.auth.permission.ConnectionPermission;
import org.glyptodon.guacamole.net.auth.permission.ObjectPermission; import org.glyptodon.guacamole.net.auth.permission.ObjectPermission;
@@ -30,6 +31,7 @@ import org.glyptodon.guacamole.net.auth.permission.UserPermission;
* *
* @author James Muehlner * @author James Muehlner
*/ */
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class APIPermission { public class APIPermission {
/** /**
@@ -79,14 +81,17 @@ public class APIPermission {
this.objectType = ObjectType.CONNECTION; this.objectType = ObjectType.CONNECTION;
this.objectPermissionType = ((ConnectionPermission) permission).getType(); this.objectPermissionType = ((ConnectionPermission) permission).getType();
this.objectIdentifier = ((ConnectionPermission) permission).getObjectIdentifier();
} else if(permission instanceof ConnectionGroupPermission) { } else if(permission instanceof ConnectionGroupPermission) {
this.objectType = ObjectType.CONNECTION_GROUP; this.objectType = ObjectType.CONNECTION_GROUP;
this.objectPermissionType = ((ConnectionGroupPermission) permission).getType(); this.objectPermissionType = ((ConnectionGroupPermission) permission).getType();
this.objectIdentifier = ((ConnectionGroupPermission) permission).getObjectIdentifier();
} else if(permission instanceof UserPermission) { } else if(permission instanceof UserPermission) {
this.objectType = ObjectType.USER; this.objectType = ObjectType.USER;
this.objectPermissionType = ((UserPermission) permission).getType(); this.objectPermissionType = ((UserPermission) permission).getType();
this.objectIdentifier = ((UserPermission) permission).getObjectIdentifier();
} else if(permission instanceof SystemPermission) { } else if(permission instanceof SystemPermission) {
this.objectType = ObjectType.SYSTEM; this.objectType = ObjectType.SYSTEM;
@@ -175,7 +180,7 @@ public class APIPermission {
* @return An org.glyptodon.guacamole.net.auth.permission.Permission * @return An org.glyptodon.guacamole.net.auth.permission.Permission
* representation of this APIPermission. * representation of this APIPermission.
*/ */
public Permission getPermission() { public Permission toPermission() {
switch(this.objectType) { switch(this.objectType) {
case CONNECTION: case CONNECTION:
return new ConnectionPermission return new ConnectionPermission

View File

@@ -61,7 +61,7 @@ public class PermissionService {
Set<Permission> permissions = new HashSet<Permission>(); Set<Permission> permissions = new HashSet<Permission>();
for(APIPermission restPermission : restPermissions) { for(APIPermission restPermission : restPermissions) {
permissions.add(restPermission.getPermission()); permissions.add(restPermission.toPermission());
} }
return permissions; return permissions;