mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 00:53:21 +00:00 
			
		
		
		
	GUACAMOLE-394: Merge refactor extension API to define user history
This commit is contained in:
		| @@ -0,0 +1,78 @@ | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements.  See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership.  The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied.  See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package org.apache.guacamole.net.auth; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| /** | ||||
|  * A logging record describing when a user started and ended a particular | ||||
|  * activity. | ||||
|  */ | ||||
| public interface ActivityRecord { | ||||
|  | ||||
|     /** | ||||
|      * Returns the date and time the activity began. | ||||
|      * | ||||
|      * @return | ||||
|      *     The date and time the activity began. | ||||
|      */ | ||||
|     public Date getStartDate(); | ||||
|  | ||||
|     /** | ||||
|      * Returns the date and time the activity ended, if applicable. | ||||
|      * | ||||
|      * @return | ||||
|      *     The date and time the activity ended, or null if the activity is | ||||
|      *     still ongoing or if the end time is unknown. | ||||
|      */ | ||||
|     public Date getEndDate(); | ||||
|  | ||||
|     /** | ||||
|      * Returns the hostname or IP address of the remote host that performed the | ||||
|      * activity associated with this record, if known. If the hostname or IP | ||||
|      * address is not known, null is returned. | ||||
|      * | ||||
|      * @return | ||||
|      *     The hostname or IP address of the remote host, or null if this | ||||
|      *     information is not available. | ||||
|      */ | ||||
|     public String getRemoteHost(); | ||||
|  | ||||
|     /** | ||||
|      * Returns the name of the user who performed or is performing the activity | ||||
|      * at the times given by this record. | ||||
|      * | ||||
|      * @return | ||||
|      *     The name of the user who performed or is performing the associated | ||||
|      *     activity. | ||||
|      */ | ||||
|     public String getUsername(); | ||||
|  | ||||
|     /** | ||||
|      * Returns whether the activity associated with this record is still | ||||
|      * ongoing. | ||||
|      * | ||||
|      * @return | ||||
|      *     true if the activity associated with this record is still ongoing, | ||||
|      *     false otherwise. | ||||
|      */ | ||||
|     public boolean isActive(); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,128 @@ | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements.  See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership.  The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied.  See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package org.apache.guacamole.net.auth; | ||||
|  | ||||
| import java.util.Collection; | ||||
| import org.apache.guacamole.GuacamoleException; | ||||
|  | ||||
| /** | ||||
|  * A set of all available records related to a type of activity which has a | ||||
|  * defined start and end time, such as a user being logged in or connected, or a | ||||
|  * subset of those records. | ||||
|  * | ||||
|  * @param <RecordType> | ||||
|  *     The type of ActivityRecord contained within this set. | ||||
|  */ | ||||
| public interface ActivityRecordSet<RecordType extends ActivityRecord> { | ||||
|  | ||||
|     /** | ||||
|      * All properties of activity records which can be used as sorting | ||||
|      * criteria. | ||||
|      */ | ||||
|     enum SortableProperty { | ||||
|  | ||||
|         /** | ||||
|          * The date and time when the activity associated with the record | ||||
|          * began. | ||||
|          */ | ||||
|         START_DATE | ||||
|  | ||||
|     }; | ||||
|  | ||||
|     /** | ||||
|      * Returns all records within this set as a standard Collection. | ||||
|      * | ||||
|      * @return | ||||
|      *      A collection containing all records within this set. | ||||
|      * | ||||
|      * @throws GuacamoleException | ||||
|      *      If an error occurs while retrieving the records within this set. | ||||
|      */ | ||||
|     Collection<RecordType> asCollection() throws GuacamoleException; | ||||
|  | ||||
|     /** | ||||
|      * Returns the subset of records which contain the given value. The | ||||
|      * properties and semantics involved with determining whether a particular | ||||
|      * record "contains" the given value is implementation dependent. This | ||||
|      * function may affect the contents of the current ActivityRecordSet. The | ||||
|      * contents of the current ActivityRecordSet should NOT be relied upon | ||||
|      * after this function is called. | ||||
|      * | ||||
|      * @param value | ||||
|      *     The value which all records within the resulting subset should | ||||
|      *     contain. | ||||
|      * | ||||
|      * @return | ||||
|      *     The subset of records which contain the specified value. | ||||
|      * | ||||
|      * @throws GuacamoleException | ||||
|      *     If an error occurs while restricting the current subset. | ||||
|      */ | ||||
|     ActivityRecordSet<RecordType> contains(String value) | ||||
|             throws GuacamoleException; | ||||
|  | ||||
|     /** | ||||
|      * Returns the subset of records containing only the first | ||||
|      * <code>limit</code> records. If the subset has fewer than | ||||
|      * <code>limit</code> records, then this function has no effect. This | ||||
|      * function may also affect the contents of the current ActivityRecordSet. | ||||
|      * The contents of the current ActivityRecordSet should NOT be relied upon | ||||
|      * after this function is called. | ||||
|      * | ||||
|      * @param limit | ||||
|      *     The maximum number of records that the new subset should contain. | ||||
|      * | ||||
|      * @return | ||||
|      *     The subset of records that containing only the first | ||||
|      *     <code>limit</code> records. | ||||
|      * | ||||
|      * @throws GuacamoleException | ||||
|      *     If an error occurs while limiting the current subset. | ||||
|      */ | ||||
|     ActivityRecordSet<RecordType> limit(int limit) throws GuacamoleException; | ||||
|  | ||||
|     /** | ||||
|      * Returns a ActivityRecordSet containing identically the records within | ||||
|      * this set, sorted according to the specified criteria. The sort operation | ||||
|      * performed is guaranteed to be stable with respect to any past call to | ||||
|      * sort(). This function may also affect the contents of the current | ||||
|      * ActivityRecordSet. The contents of the current ActivityRecordSet | ||||
|      * should NOT be relied upon after this function is called. | ||||
|      * | ||||
|      * @param property | ||||
|      *     The property by which the records within the resulting set should be | ||||
|      *     sorted. | ||||
|      * | ||||
|      * @param desc | ||||
|      *     Whether the records should be sorted according to the specified | ||||
|      *     property in descending order. If false, records will be sorted | ||||
|      *     according to the specified property in ascending order. | ||||
|      * | ||||
|      * @return | ||||
|      *     The ActivityRecordSet, sorted according to the specified criteria. | ||||
|      * | ||||
|      * @throws GuacamoleException | ||||
|      *     If an error occurs while sorting the current subset, or if the given | ||||
|      *     property is not supported by the implementation. | ||||
|      */ | ||||
|     ActivityRecordSet<RecordType> sort(SortableProperty property, boolean desc) | ||||
|             throws GuacamoleException; | ||||
|  | ||||
| } | ||||
| @@ -19,6 +19,7 @@ | ||||
|  | ||||
| package org.apache.guacamole.net.auth; | ||||
|  | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.Set; | ||||
| @@ -102,6 +103,18 @@ public interface Connection extends Identifiable, Connectable { | ||||
|      */ | ||||
|     void setAttributes(Map<String, String> attributes); | ||||
|  | ||||
|     /** | ||||
|      * Returns the date and time that this connection was last used. If the | ||||
|      * connection was never used, the time that the connection was last used is | ||||
|      * unknown, or this information is not visible to the current user, this | ||||
|      * may be null. | ||||
|      * | ||||
|      * @return | ||||
|      *     The date and time this connection was last used, or null if this | ||||
|      *     information is unavailable or inapplicable. | ||||
|      */ | ||||
|     Date getLastActive(); | ||||
|  | ||||
|     /** | ||||
|      * Returns a list of ConnectionRecords representing the usage history | ||||
|      * of this Connection, including any active users. ConnectionRecords | ||||
|   | ||||
| @@ -19,13 +19,11 @@ | ||||
|  | ||||
| package org.apache.guacamole.net.auth; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| /** | ||||
|  * A logging record describing when a user started and ended usage of a | ||||
|  * particular connection. | ||||
|  */ | ||||
| public interface ConnectionRecord { | ||||
| public interface ConnectionRecord extends ActivityRecord { | ||||
|  | ||||
|     /** | ||||
|      * Returns the identifier of the connection associated with this | ||||
| @@ -72,48 +70,4 @@ public interface ConnectionRecord { | ||||
|      */ | ||||
|     public String getSharingProfileName(); | ||||
|  | ||||
|     /** | ||||
|      * Returns the date and time the connection began. | ||||
|      * | ||||
|      * @return The date and time the connection began. | ||||
|      */ | ||||
|     public Date getStartDate(); | ||||
|  | ||||
|     /** | ||||
|      * Returns the date and time the connection ended, if applicable. | ||||
|      * | ||||
|      * @return The date and time the connection ended, or null if the | ||||
|      *         connection is still running or if the end time is unknown. | ||||
|      */ | ||||
|     public Date getEndDate(); | ||||
|  | ||||
|     /** | ||||
|      * Returns the hostname or IP address of the remote host that used the | ||||
|      * connection associated with this record, if known. If the hostname or IP | ||||
|      * address is not known, null is returned. | ||||
|      * | ||||
|      * @return | ||||
|      *     The hostname or IP address of the remote host, or null if this | ||||
|      *     information is not available. | ||||
|      */ | ||||
|     public String getRemoteHost(); | ||||
|  | ||||
|     /** | ||||
|      * Returns the name of the user who used or is using the connection at the | ||||
|      * times given by this connection record. | ||||
|      * | ||||
|      * @return The name of the user who used or is using the associated | ||||
|      *         connection. | ||||
|      */ | ||||
|     public String getUsername(); | ||||
|  | ||||
|     /** | ||||
|      * Returns whether the connection associated with this record is still | ||||
|      * active. | ||||
|      * | ||||
|      * @return true if the connection associated with this record is still | ||||
|      *         active, false otherwise. | ||||
|      */ | ||||
|     public boolean isActive(); | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -19,107 +19,13 @@ | ||||
|  | ||||
| package org.apache.guacamole.net.auth; | ||||
|  | ||||
| import java.util.Collection; | ||||
| import org.apache.guacamole.GuacamoleException; | ||||
|  | ||||
| /** | ||||
|  * The set of all available connection records, or a subset of those records. | ||||
|  * | ||||
|  * @deprecated | ||||
|  *     Use {@link ActivityRecordSet}<{@link ConnectionRecord}> instead. | ||||
|  */ | ||||
| public interface ConnectionRecordSet { | ||||
|  | ||||
|     /** | ||||
|      * All properties of connection records which can be used as sorting | ||||
|      * criteria. | ||||
|      */ | ||||
|     enum SortableProperty { | ||||
|  | ||||
|         /** | ||||
|          * The date and time when the connection associated with the | ||||
|          * connection record began. | ||||
|          */ | ||||
|         START_DATE | ||||
|  | ||||
|     }; | ||||
|  | ||||
|     /** | ||||
|      * Returns all connection records within this set as a standard Collection. | ||||
|      * | ||||
|      * @return | ||||
|      *      A collection containing all connection records within this set. | ||||
|      * | ||||
|      * @throws GuacamoleException | ||||
|      *      If an error occurs while retrieving the connection records within | ||||
|      *      this set. | ||||
|      */ | ||||
|     Collection<ConnectionRecord> asCollection() throws GuacamoleException; | ||||
|  | ||||
|     /** | ||||
|      * Returns the subset of connection records to only those where the | ||||
|      * connection name, user identifier, or any associated date field contain | ||||
|      * the given value. This function may also affect the contents of the | ||||
|      * current ConnectionRecordSet. The contents of the current | ||||
|      * ConnectionRecordSet should NOT be relied upon after this function is | ||||
|      * called. | ||||
|      * | ||||
|      * @param value | ||||
|      *     The value which all connection records within the resulting subset | ||||
|      *     should contain within their associated connection name or user | ||||
|      *     identifier. | ||||
|      * | ||||
|      * @return | ||||
|      *     The subset of connection history records which contain the specified | ||||
|      *     value within their associated connection name or user identifier. | ||||
|      * | ||||
|      * @throws GuacamoleException | ||||
|      *     If an error occurs while restricting the current subset. | ||||
|      */ | ||||
|     ConnectionRecordSet contains(String value) throws GuacamoleException; | ||||
|  | ||||
|     /** | ||||
|      * Returns the subset of connection history records containing only the | ||||
|      * first <code>limit</code> records. If the subset has fewer than | ||||
|      * <code>limit</code> records, then this function has no effect. This | ||||
|      * function may also affect the contents of the current | ||||
|      * ConnectionRecordSet. The contents of the current ConnectionRecordSet | ||||
|      * should NOT be relied upon after this function is called. | ||||
|      * | ||||
|      * @param limit | ||||
|      *     The maximum number of records that the new subset should contain. | ||||
|      * | ||||
|      * @return | ||||
|      *     The subset of connection history records that containing only the | ||||
|      *     first <code>limit</code> records. | ||||
|      * | ||||
|      * @throws GuacamoleException | ||||
|      *     If an error occurs while limiting the current subset. | ||||
|      */ | ||||
|     ConnectionRecordSet limit(int limit) throws GuacamoleException; | ||||
|  | ||||
|     /** | ||||
|      * Returns a ConnectionRecordSet containing identically the records within | ||||
|      * this set, sorted according to the specified criteria. The sort operation | ||||
|      * performed is guaranteed to be stable with respect to any past call to | ||||
|      * sort(). This function may also affect the contents of the current | ||||
|      * ConnectionRecordSet. The contents of the current ConnectionRecordSet | ||||
|      * should NOT be relied upon after this function is called. | ||||
|      * | ||||
|      * @param property | ||||
|      *     The property by which the connection records within the resulting | ||||
|      *     set should be sorted. | ||||
|      * | ||||
|      * @param desc | ||||
|      *     Whether the records should be sorted according to the specified | ||||
|      *     property in descending order. If false, records will be sorted | ||||
|      *     according to the specified property in ascending order. | ||||
|      * | ||||
|      * @return | ||||
|      *     The ConnnectionRecordSet, sorted according to the specified | ||||
|      *     criteria. | ||||
|      * | ||||
|      * @throws GuacamoleException | ||||
|      *     If an error occurs while sorting the current subset. | ||||
|      */ | ||||
|     ConnectionRecordSet sort(SortableProperty property, boolean desc) | ||||
|             throws GuacamoleException; | ||||
|  | ||||
| @Deprecated | ||||
| public interface ConnectionRecordSet | ||||
|         extends ActivityRecordSet<ConnectionRecord> { | ||||
| } | ||||
|   | ||||
| @@ -19,6 +19,8 @@ | ||||
|  | ||||
| package org.apache.guacamole.net.auth; | ||||
|  | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import org.apache.guacamole.GuacamoleException; | ||||
| import org.apache.guacamole.net.auth.permission.ObjectPermissionSet; | ||||
| @@ -100,6 +102,34 @@ public interface User extends Identifiable { | ||||
|      */ | ||||
|     void setAttributes(Map<String, String> attributes); | ||||
|  | ||||
|     /** | ||||
|      * Returns the date and time that this user was last active. If the user | ||||
|      * was never active, the time that the user was last active is unknown, or | ||||
|      * this information is not visible to the current user, this may be null. | ||||
|      * | ||||
|      * @return | ||||
|      *     The date and time this user was last active, or null if this | ||||
|      *     information is unavailable or inapplicable. | ||||
|      */ | ||||
|     Date getLastActive(); | ||||
|  | ||||
|     /** | ||||
|      * Returns a list of ActivityRecords representing the login history | ||||
|      * of this user, including any active sessions. ActivityRecords | ||||
|      * in this list will be sorted in descending order of end time (active | ||||
|      * sessions are first), and then in descending order of start time | ||||
|      * (newer sessions are first). | ||||
|      * | ||||
|      * @return | ||||
|      *     A list of ActivityRecords representing the login history of this | ||||
|      *     User. | ||||
|      * | ||||
|      * @throws GuacamoleException | ||||
|      *     If an error occurs while reading the history of this user, or if | ||||
|      *     permission is denied. | ||||
|      */ | ||||
|     List<? extends ActivityRecord> getHistory() throws GuacamoleException; | ||||
|  | ||||
|     /** | ||||
|      * Returns all system-level permissions given to this user. | ||||
|      * | ||||
|   | ||||
| @@ -143,9 +143,11 @@ public interface UserContext { | ||||
|             throws GuacamoleException; | ||||
|  | ||||
|     /** | ||||
|      * Retrieves all connection records visible to current user. The resulting | ||||
|      * set of connection records can be further filtered and ordered using the | ||||
|      * methods defined on ConnectionRecordSet. | ||||
|      * Retrieves all connection records visible to current user. Connection | ||||
|      * history records describe the start and end times of connections, and | ||||
|      * correspond to the times that users connect or disconnect to individual | ||||
|      * remote desktops. The resulting set of connection records can be further | ||||
|      * filtered and ordered using the methods defined on ActivityRecordSet. | ||||
|      * | ||||
|      * @return | ||||
|      *     A set of all connection records visible to the current user. | ||||
| @@ -153,7 +155,23 @@ public interface UserContext { | ||||
|      * @throws GuacamoleException | ||||
|      *     If an error occurs while retrieving the connection records. | ||||
|      */ | ||||
|     ConnectionRecordSet getConnectionHistory() throws GuacamoleException; | ||||
|     ActivityRecordSet<ConnectionRecord> getConnectionHistory() | ||||
|             throws GuacamoleException; | ||||
|  | ||||
|     /** | ||||
|      * Retrieves all user history records visible to current user. User history | ||||
|      * records describe the start and end times of user sessions, and correspond | ||||
|      * to the times that users logged in or out. The resulting set of user | ||||
|      * records can be further filtered and ordered using the methods defined on | ||||
|      * ActivityRecordSet. | ||||
|      * | ||||
|      * @return | ||||
|      *     A set of all user records visible to the current user. | ||||
|      * | ||||
|      * @throws GuacamoleException | ||||
|      *     If an error occurs while retrieving the user records. | ||||
|      */ | ||||
|     ActivityRecordSet<ActivityRecord> getUserHistory() throws GuacamoleException; | ||||
|  | ||||
|     /** | ||||
|      * Retrieves a connection group which can be used to view and manipulate | ||||
|   | ||||
| @@ -0,0 +1,62 @@ | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements.  See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership.  The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied.  See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package org.apache.guacamole.net.auth.simple; | ||||
|  | ||||
| import java.util.Collection; | ||||
| import java.util.Collections; | ||||
| import org.apache.guacamole.GuacamoleException; | ||||
| import org.apache.guacamole.net.auth.ActivityRecord; | ||||
| import org.apache.guacamole.net.auth.ActivityRecordSet; | ||||
| import org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty; | ||||
|  | ||||
| /** | ||||
|  * An immutable and empty ActivityRecordSet. | ||||
|  * | ||||
|  * @param <RecordType> | ||||
|  *     The type of ActivityRecord contained within this set. | ||||
|  */ | ||||
| public class SimpleActivityRecordSet<RecordType extends ActivityRecord> | ||||
|         implements ActivityRecordSet<RecordType> { | ||||
|  | ||||
|     @Override | ||||
|     public Collection<RecordType> asCollection() | ||||
|             throws GuacamoleException { | ||||
|         return Collections.<RecordType>emptyList(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public ActivityRecordSet<RecordType> contains(String value) | ||||
|             throws GuacamoleException { | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public ActivityRecordSet<RecordType> limit(int limit) | ||||
|             throws GuacamoleException { | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public ActivityRecordSet<RecordType> sort(SortableProperty property, | ||||
|             boolean desc) throws GuacamoleException { | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -20,6 +20,7 @@ | ||||
| package org.apache.guacamole.net.auth.simple; | ||||
|  | ||||
| import java.util.Collections; | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import org.apache.guacamole.GuacamoleException; | ||||
| @@ -136,6 +137,11 @@ public class SimpleConnection extends AbstractConnection { | ||||
|          | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Date getLastActive() { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<ConnectionRecord> getHistory() throws GuacamoleException { | ||||
|         return Collections.<ConnectionRecord>emptyList(); | ||||
|   | ||||
| @@ -23,12 +23,16 @@ import java.util.Collection; | ||||
| import java.util.Collections; | ||||
| import org.apache.guacamole.GuacamoleException; | ||||
| import org.apache.guacamole.net.auth.ConnectionRecord; | ||||
| import org.apache.guacamole.net.auth.ConnectionRecordSet; | ||||
|  | ||||
| /** | ||||
|  * An immutable and empty ConnectionRecordSet. | ||||
|  * | ||||
|  * @deprecated | ||||
|  *     Use {@link SimpleActivityRecordSet}<{@link ConnectionRecord}> | ||||
|  *     instead. | ||||
|  */ | ||||
| public class SimpleConnectionRecordSet implements ConnectionRecordSet { | ||||
| @Deprecated | ||||
| public class SimpleConnectionRecordSet implements org.apache.guacamole.net.auth.ConnectionRecordSet { | ||||
|  | ||||
|     @Override | ||||
|     public Collection<ConnectionRecord> asCollection() | ||||
| @@ -37,19 +41,19 @@ public class SimpleConnectionRecordSet implements ConnectionRecordSet { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public ConnectionRecordSet contains(String value) | ||||
|     public org.apache.guacamole.net.auth.ConnectionRecordSet contains(String value) | ||||
|             throws GuacamoleException { | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public ConnectionRecordSet limit(int limit) | ||||
|     public org.apache.guacamole.net.auth.ConnectionRecordSet limit(int limit) | ||||
|             throws GuacamoleException { | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public ConnectionRecordSet sort(SortableProperty property, boolean desc) | ||||
|     public org.apache.guacamole.net.auth.ConnectionRecordSet sort(SortableProperty property, boolean desc) | ||||
|             throws GuacamoleException { | ||||
|         return this; | ||||
|     } | ||||
|   | ||||
| @@ -21,11 +21,14 @@ package org.apache.guacamole.net.auth.simple; | ||||
|  | ||||
| import java.util.Collection; | ||||
| import java.util.Collections; | ||||
| import java.util.Date; | ||||
| import java.util.HashSet; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.Set; | ||||
| import org.apache.guacamole.GuacamoleException; | ||||
| import org.apache.guacamole.net.auth.AbstractUser; | ||||
| import org.apache.guacamole.net.auth.ActivityRecord; | ||||
| import org.apache.guacamole.net.auth.permission.ObjectPermission; | ||||
| import org.apache.guacamole.net.auth.permission.ObjectPermissionSet; | ||||
| import org.apache.guacamole.net.auth.permission.SystemPermissionSet; | ||||
| @@ -163,6 +166,16 @@ public class SimpleUser extends AbstractUser { | ||||
|         // Do nothing - there are no attributes | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Date getLastActive() { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<ActivityRecord> getHistory() throws GuacamoleException { | ||||
|         return Collections.<ActivityRecord>emptyList(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public SystemPermissionSet getSystemPermissions() | ||||
|             throws GuacamoleException { | ||||
|   | ||||
| @@ -27,10 +27,12 @@ import java.util.UUID; | ||||
| import org.apache.guacamole.GuacamoleException; | ||||
| import org.apache.guacamole.form.Form; | ||||
| import org.apache.guacamole.net.auth.ActiveConnection; | ||||
| import org.apache.guacamole.net.auth.ActivityRecord; | ||||
| import org.apache.guacamole.net.auth.ActivityRecordSet; | ||||
| import org.apache.guacamole.net.auth.AuthenticationProvider; | ||||
| import org.apache.guacamole.net.auth.Connection; | ||||
| import org.apache.guacamole.net.auth.ConnectionGroup; | ||||
| import org.apache.guacamole.net.auth.ConnectionRecordSet; | ||||
| import org.apache.guacamole.net.auth.ConnectionRecord; | ||||
| import org.apache.guacamole.net.auth.Directory; | ||||
| import org.apache.guacamole.net.auth.SharingProfile; | ||||
| import org.apache.guacamole.net.auth.User; | ||||
| @@ -209,9 +211,15 @@ public class SimpleUserContext implements UserContext { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public ConnectionRecordSet getConnectionHistory() | ||||
|     public ActivityRecordSet<ConnectionRecord> getConnectionHistory() | ||||
|             throws GuacamoleException { | ||||
|         return new SimpleConnectionRecordSet(); | ||||
|         return new SimpleActivityRecordSet<ConnectionRecord>(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public ActivityRecordSet<ActivityRecord> getUserHistory() | ||||
|             throws GuacamoleException { | ||||
|         return new SimpleActivityRecordSet<ActivityRecord>(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|   | ||||
		Reference in New Issue
	
	Block a user