jmuehlner commented on code in PR #1029:
URL: https://github.com/apache/guacamole-client/pull/1029#discussion_r1802099167


##########
extensions/guacamole-auth-restrict/src/main/java/org/apache/guacamole/auth/restrict/RestrictionVerificationService.java:
##########
@@ -54,6 +54,67 @@ public class RestrictionVerificationService {
      */
     private static final Logger LOGGER = 
LoggerFactory.getLogger(RestrictionVerificationService.class);
 
+    /**
+     * Given the provided strings of an absolute date after which an action is
+     * valid and before which an action is valid, parse the strings into Date
+     * objects and determine if the current date and time falls within the
+     * provided window, returning the appropriate restriction type.
+     * 
+     * @param afterTimeString
+     *     The string that has the date and time value after which the activity
+     *     is allowed.
+     * 
+     * @param beforeTimeString
+     *     The string that has the date and time value before which the 
activity
+     *     is allowed.
+     * 
+     * @return 
+     *     The RestrictionType that represents the allowed or denied state of
+     *     the activity.
+     */
+    private static RestrictionType allowedByDateTimeRestrictions(
+            String afterTimeString, String beforeTimeString) {
+        
+        // Set a default restriction.
+        RestrictionType dateTimeRestriction = RestrictionType.IMPLICIT_ALLOW;
+        
+        // Check the after string and make sure that now is after that date.
+        if (afterTimeString != null && !afterTimeString.isEmpty()) {
+            Date now = new Date();
+            try {
+                Date afterTime = 
DateTimeRestrictionField.parse(afterTimeString);
+                if (now.before(afterTime))
+                    return RestrictionType.EXPLICIT_DENY;
+            }
+            catch (ParseException e) {
+                LOGGER.warn("Failed to parse date and time string: {}:", 
e.getMessage());
+                LOGGER.debug("Parse exception while parsing date and time 
string.", e);
+                return RestrictionType.IMPLICIT_DENY;
+            }
+            dateTimeRestriction = RestrictionType.EXPLICIT_ALLOW;
+        }
+        
+        // Check the before string and make sure that now is prior to that 
date.
+        if (beforeTimeString != null && !beforeTimeString.isEmpty()) {
+            Date now = new Date();
+            try {
+                Date beforeTime = 
DateTimeRestrictionField.parse(beforeTimeString);
+                if (now.after(beforeTime))
+                    return RestrictionType.EXPLICIT_DENY;
+            }
+            catch (ParseException e) {
+                LOGGER.warn("Failed to parse date and time string: {}:", 
e.getMessage());
+                LOGGER.debug("Parse exception while parsing date and time 
string.", e);
+                return RestrictionType.IMPLICIT_DENY;
+            }
+            dateTimeRestriction = RestrictionType.EXPLICIT_ALLOW;
+            
+        }
+        
+        // No restrictions present, so we allow the connection.

Review Comment:
   This isn't connection-specific at this level, is it?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@guacamole.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to