diff --git a/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/GuacamoleConfigurationDirectoryPermission.java b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/GuacamoleConfigurationDirectoryPermission.java new file mode 100644 index 000000000..4d9b4d4e4 --- /dev/null +++ b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/GuacamoleConfigurationDirectoryPermission.java @@ -0,0 +1,69 @@ + +package net.sourceforge.guacamole.net.auth.permission; + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is guacamole-ext. + * + * The Initial Developer of the Original Code is + * Michael Jumper. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + + +/** + * A permission which controls access to a GuacamoleConfigurationDirectory. + * + * @author Michael Jumper + */ +public class GuacamoleConfigurationDirectoryPermission + implements SystemPermission { + + /** + * The type of operation affected by this permission. + */ + private Type type; + + /** + * Creates a new GuacamoleConfigurationDirectoryPermission with the given + * type. + * + * @param type The type of operation controlled by this permission. + */ + public GuacamoleConfigurationDirectoryPermission(Type type) { + this.type = type; + } + + @Override + public Type getType() { + return type; + } + +} diff --git a/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/GuacamoleConfigurationPermission.java b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/GuacamoleConfigurationPermission.java new file mode 100644 index 000000000..a7c96be76 --- /dev/null +++ b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/GuacamoleConfigurationPermission.java @@ -0,0 +1,89 @@ + +package net.sourceforge.guacamole.net.auth.permission; + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is guacamole-ext. + * + * The Initial Developer of the Original Code is + * Michael Jumper. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +import net.sourceforge.guacamole.protocol.GuacamoleConfiguration; + + +/** + * A permission which controls operations that directly affect a specific + * GuacamoleConfiguration. + * + * @author Michael Jumper + */ +public class GuacamoleConfigurationPermission + implements ObjectPermission { + + /** + * The GuacamoleConfiguration associated with the operation affected by + * this permission. + */ + private GuacamoleConfiguration subject; + + /** + * The type of operation affected by this permission. + */ + private Type type; + + /** + * Creates a new GuacamoleConfigurationPermission having the given type + * and subject. + * + * @param type The type of operation affected by this permission. + * @param subject The GuacamoleConfiguration associated with the operation + * affected by this permission. + */ + public GuacamoleConfigurationPermission(Type type, + GuacamoleConfiguration subject) { + + this.subject = subject; + this.type = type; + + } + + @Override + public GuacamoleConfiguration getSubject() { + return subject; + } + + @Override + public Type getType() { + return type; + } + +} diff --git a/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/UserDirectoryPermission.java b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/UserDirectoryPermission.java new file mode 100644 index 000000000..dc87da095 --- /dev/null +++ b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/UserDirectoryPermission.java @@ -0,0 +1,67 @@ + +package net.sourceforge.guacamole.net.auth.permission; + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is guacamole-ext. + * + * The Initial Developer of the Original Code is + * Michael Jumper. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + + +/** + * A permission which controls access to a UserDirectory. + * + * @author Michael Jumper + */ +public class UserDirectoryPermission implements SystemPermission { + + /** + * The type of operation affected by this permission. + */ + private Type type; + + /** + * Creates a new UserDirectoryPermission with the given type. + * + * @param type The type of operation controlled by this permission. + */ + public UserDirectoryPermission(Type type) { + this.type = type; + } + + @Override + public Type getType() { + return type; + } + +} diff --git a/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/UserPermission.java b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/UserPermission.java new file mode 100644 index 000000000..3029aeb40 --- /dev/null +++ b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/permission/UserPermission.java @@ -0,0 +1,85 @@ + +package net.sourceforge.guacamole.net.auth.permission; + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is guacamole-ext. + * + * The Initial Developer of the Original Code is + * Michael Jumper. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +import net.sourceforge.guacamole.net.auth.User; + + +/** + * A permission which controls operations that directly affect a specific + * User. + * + * @author Michael Jumper + */ +public class UserPermission implements ObjectPermission { + + /** + * The User associated with the operation affected by this permission. + */ + private User subject; + + /** + * The type of operation affected by this permission. + */ + private Type type; + + /** + * Creates a new UserPermission having the given type and subject. + * + * @param type The type of operation affected by this permission. + * @param subject The User associated with the operation affected by this + * permission. + */ + public UserPermission(User subject, Type type) { + + this.subject = subject; + this.type = type; + + } + + @Override + public User getSubject() { + return subject; + } + + @Override + public Type getType() { + return type; + } + +}