index c6e9f25b0b2f1270eb54678a91aa805b0caa0f8f..22670325a322509c57f3c9a8fed9e99d8d96f171 100644 (file)
// Fetch required attributes
foreach(array('shadowExpire','shadowLastChange','shadowMax','shadowMin',
- 'shadowInactive','shadowWarning') as $attr){
+ 'shadowInactive','shadowWarning','sambaKickoffTime') as $attr){
$$attr = (isset($attrs[$attr][0]))? $attrs[$attr][0] : null;
}
+ // Check if the account has reached its kick off limitations.
+ // ---------------------------------------------------------
+ // Once the accout reaches the kick off limit it has expired.
+ if($sambaKickoffTime !== null){
+ if(time() >= $sambaKickoffTime){
+ return(POSIX_ACCOUNT_EXPIRED);
+ }
+ }
+
+
// Check if the account has expired.
// ---------------------------------
// An account is locked/expired once its expiration date has reached (shadowExpire).
}
krsort($hits);
+ // Add lower case placeholders to avoid errors
+ foreach($attrs as $key => $attr) $attrs[strtolower($key)] = $attr;
+
// Replace the placeholder in the given string now.
foreach($hits as $match){
// Avoid errors about undefined index.
- $name = $match[2];
+ $name = strtolower($match[2]);
if(!isset($attrs[$name])) $attrs[$name] = $default;
// Calculate the replacement
if(!isset($match[5])){
$replacements[$match[0]][] = $attributes[$match[2]];
- // Start given but no end, so just add a simple character
+ // Start given but no end, so just add a single character
}elseif(!isset($match[7])){
if(isset($attributes[$match[2]][$match[5]])){
- $replacements[$match[0]][] = $attributes[$match[2]][$match[5]];
+ $tmp = " ".$attributes[$match[2]];
+ $replacements[$match[0]][] = trim($tmp[$match[5]]);
}
// Add all values in range
$str = "";
for($i=$match[5]; $i<= $match[7]; $i++){
if(isset($attributes[$match[2]][$i])){
- $str .= $attributes[$match[2]][$i];
- $replacements[$match[0]][] = $str;
+ $tmp = " ".$attributes[$match[2]];
+ $str .= $tmp[$i];
+ $replacements[$match[0]][] = trim($str);
}
}
}