Fix feature check in apps (missing parenthesis), allow multiple requires (comma separated)

This commit is contained in:
Stefan Parviainen 2014-12-22 17:45:43 +01:00
parent d3830aea96
commit bd2be2b10c

View File

@ -83,7 +83,9 @@ function parse_app_description($f) {
$ret['target'] = str_replace(array('\'','"'),array(''','&dquot;'),$ret['target']);
if(array_key_exists('requires',$ret)) {
$require = trim(strtolower($ret['requires']));
$requires = explode(',',$ret['requires']);
foreach($requires as $require) {
$require = trim(strtolower($require));
switch($require) {
case 'nologin':
if(local_user())
@ -106,12 +108,12 @@ function parse_app_description($f) {
unset($ret);
break;
default:
if(! local_user() && feature_enabled(local_user(),$require))
if(! (local_user() && feature_enabled(local_user(),$require)))
unset($ret);
break;
}
// logger('require: ' . print_r($ret,true));
}
}
if($ret) {
translate_system_apps($ret);
@ -189,7 +191,9 @@ function app_render($papp,$mode = 'view') {
$papp['desc'] = str_replace(array('\'','"'),array(''','&dquot;'),$papp['desc']);
if($k === 'requires') {
$require = trim(strtolower($v));
$requires = explode(',',$v);
foreach($requires as $require) {
$require = trim(strtolower($require));
switch($require) {
case 'nologin':
if(local_user())
@ -213,11 +217,12 @@ function app_render($papp,$mode = 'view') {
return '';
break;
default:
if(! local_user() && feature_enabled(local_user(),$require))
if(! (local_user() && feature_enabled(local_user(),$require)))
return '';
break;
}
}
}
}