Skip to content

Commit

Permalink
GUACAMOLE-1020: Handle differences in Sunday processing for Java and …
Browse files Browse the repository at this point in the history
…JavaScript.
  • Loading branch information
necouchman committed Sep 9, 2024
1 parent 08f9adb commit 2cf253c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public class TimeRestrictionParser {
* </ul>
*/
private static final Pattern RESTRICTION_REGEX =
Pattern.compile("(?:^|;)+([1-7*])(?::((?:[01][0-9]|2[0-3])[0-5][0-9])\\-((?:[01][0-9]|2[0-3])[0-5][0-9]))+");
Pattern.compile("(?:^|;)+([0-7*])(?::((?:[01][0-9]|2[0-3])[0-5][0-9])\\-((?:[01][0-9]|2[0-3])[0-5][0-9]))+");

/**
* The RegEx group that contains the start day-of-week of the restriction.
Expand Down Expand Up @@ -136,7 +136,14 @@ public static List<DailyRestriction> parseString(String restrictionString) {

// A specific day of the week.
default:
restrictions.add(new DailyRestriction(DayOfWeek.of(Integer.parseInt(dayString)), startTime, endTime));
int dayInt = Integer.parseInt(dayString);

// While JavaScript sees Sunday as "0" and "7", DayOfWeek
// does not, so we'll convert it to "7" in order to process it.
if (dayInt == 0)
dayInt = 7;

restrictions.add(new DailyRestriction(DayOfWeek.of(dayInt), startTime, endTime));

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ angular.module('guacRestrict').controller('timeRestrictionFieldController', ['$s
* twice - once for the 0-index and once for the 7 index.
*/
$scope.weekDays = [
{ id : '0', day : 'Sunday' },
{ id : '1', day : 'Monday' },
{ id : '2', day : 'Tuesday' },
{ id : '3', day : 'Wednesday' },
Expand Down Expand Up @@ -132,8 +131,16 @@ angular.module('guacRestrict').controller('timeRestrictionFieldController', ['$s
if (restrictionRegex.test(restrArray[i])) {
var currArray = restrArray[i].match(restrictionRegex);
let entry = new TimeRestrictionEntry();
entry.startTime = new Date(Date.UTC(templateDate.getFullYear(), templateDate.getMonth(), templateDate.getDate(), parseInt(currArray[2].slice(0,2)), parseInt(currArray[2].slice(2))));
entry.endTime = new Date(Date.UTC(templateDate.getFullYear(), templateDate.getMonth(), templateDate.getDate(), parseInt(currArray[3].slice(0,2)), parseInt(currArray[3].slice(2))));
entry.startTime = new Date(Date.UTC(templateDate.getFullYear(),
templateDate.getMonth(),
templateDate.getDate(),
parseInt(currArray[2].slice(0,2)),
parseInt(currArray[2].slice(2))));
entry.endTime = new Date(Date.UTC(templateDate.getFullYear(),
templateDate.getMonth(),
templateDate.getDate(),
parseInt(currArray[3].slice(0,2)),
parseInt(currArray[3].slice(2))));
var origDay = currArray[1];

if (currArray[1] === '*')
Expand Down

0 comments on commit 2cf253c

Please sign in to comment.