* ACS checks in 'next' blocks can now have a default "catch all" by simply omitting the 'acs' portion of a condition

This commit is contained in:
Bryan Ashby 2015-11-14 17:51:05 -07:00
parent 688e46bc47
commit 48c12ddffb
3 changed files with 31 additions and 10 deletions

View File

@ -15,9 +15,19 @@ function getConditionalValue(client, condArray, memberName) {
assert(_.isString(memberName)); assert(_.isString(memberName));
var matchCond = _.find(condArray, function cmp(cond) { var matchCond = _.find(condArray, function cmp(cond) {
return acsParser.parse(cond.acs, { client : client } ); return _.has(cond, 'acs') && acsParser.parse(cond.acs, { client : client } );
}); });
//
// If no matchCond, look for a default entry. That is,
// a entry without a 'acs' string.
//
if(!matchCond) {
matchCond = _.find(condArray, function cmp(cond) {
return !_.has(cond, 'acs');
});
}
if(matchCond) { if(matchCond) {
return matchCond[memberName]; return matchCond[memberName];
} }

View File

@ -16,7 +16,6 @@
return !isNaN(value) && user.getAge() >= value; return !isNaN(value) && user.getAge() >= value;
}, },
AS : function accountStatus() { AS : function accountStatus() {
if(_.isNumber(value)) { if(_.isNumber(value)) {
value = [ value ]; value = [ value ];
} }
@ -82,16 +81,28 @@
return !isNaN(value) && client.term.termWidth >= value; return !isNaN(value) && client.term.termWidth >= value;
}, },
ID : function isUserId(value) { ID : function isUserId(value) {
return user.userId === value; if(_.isNumber(value)) {
value = [ value ];
}
assert(_.isArray(value));
return _.findIndex(value, function cmp(uid) {
return user.userId === parseInt(uid, 10);
}) > -1;
}, },
WD : function isOneOfDayOfWeek() { WD : function isOneOfDayOfWeek() {
// :TODO: return true if DoW
if(_.isNumber(value)) { if(_.isNumber(value)) {
value = [ value ];
} else if(_.isArray(value)) {
} }
return false;
assert(_.isArray(value));
var nowDayOfWeek = new Date().getDay();
return _.findIndex(value, function cmp(dow) {
return nowDayOfWeek === parseInt(dow, 10);
}) > -1;
}, },
MM : function isMinutesPastMidnight() { MM : function isMinutesPastMidnight() {
// :TODO: return true if value is >= minutes past midnight sys time // :TODO: return true if value is >= minutes past midnight sys time

View File

@ -309,7 +309,7 @@
next: fullLoginSequenceLoginArt next: fullLoginSequenceLoginArt
} }
{ {
acs: !AS2 // acs: !AS2
next: newUserInactiveDone next: newUserInactiveDone
} }
] ]