* 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,8 +15,18 @@ function getConditionalValue(client, condArray, memberName) {
assert(_.isString(memberName));
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) {
return matchCond[memberName];

View File

@ -16,7 +16,6 @@
return !isNaN(value) && user.getAge() >= value;
},
AS : function accountStatus() {
if(_.isNumber(value)) {
value = [ value ];
}
@ -82,16 +81,28 @@
return !isNaN(value) && client.term.termWidth >= 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() {
// :TODO: return true if DoW
if(_.isNumber(value)) {
} else if(_.isArray(value)) {
value = [ 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() {
// :TODO: return true if value is >= minutes past midnight sys time

View File

@ -307,9 +307,9 @@
{
acs: AS2
next: fullLoginSequenceLoginArt
}
}
{
acs: !AS2
// acs: !AS2
next: newUserInactiveDone
}
]