@@ -36,18 +36,18 @@ REGISTER_FUNCTION(System, exit, &Application::Exit, "status");
3636REGISTER_SAFE_FUNCTION (System, typeof , &ScriptUtils::TypeOf, " value" );
3737REGISTER_SAFE_FUNCTION (System, keys, &ScriptUtils::Keys, " value" );
3838REGISTER_SAFE_FUNCTION (System, random, &Utility::Random, " " );
39- REGISTER_SAFE_FUNCTION (System, get_template, &ScriptUtils::GetTemplate, " type:name" );
40- REGISTER_SAFE_FUNCTION (System, get_templates, &ScriptUtils::GetTemplates, " type" );
39+ REGISTER_FUNCTION (System, get_template, &ScriptUtils::GetTemplate, " type:name" );
40+ REGISTER_FUNCTION (System, get_templates, &ScriptUtils::GetTemplates, " type" );
4141REGISTER_SAFE_FUNCTION (System, get_object, &ScriptUtils::GetObject, " type:name" );
42- REGISTER_SAFE_FUNCTION (System, get_objects, &ScriptUtils::GetObjects, " type" );
42+ REGISTER_FUNCTION (System, get_objects, &ScriptUtils::GetObjects, " type" );
4343REGISTER_FUNCTION (System, assert , &ScriptUtils::Assert, " value" );
4444REGISTER_SAFE_FUNCTION (System, string, &ScriptUtils::CastString, " value" );
4545REGISTER_SAFE_FUNCTION (System, number, &ScriptUtils::CastNumber, " value" );
4646REGISTER_SAFE_FUNCTION (System, bool , &ScriptUtils::CastBool, " value" );
4747REGISTER_SAFE_FUNCTION (System, get_time, &Utility::GetTime, " " );
4848REGISTER_SAFE_FUNCTION (System, basename, &Utility::BaseName, " path" );
4949REGISTER_SAFE_FUNCTION (System, dirname, &Utility::DirName, " path" );
50- REGISTER_SAFE_FUNCTION (System, getenv, &ScriptUtils::GetEnv, " value" );
50+ REGISTER_FUNCTION (System, getenv, &ScriptUtils::GetEnv, " value" );
5151REGISTER_SAFE_FUNCTION (System, msi_get_component_path, &ScriptUtils::MsiGetComponentPathShim, " component" );
5252REGISTER_SAFE_FUNCTION (System, track_parents, &ScriptUtils::TrackParents, " child" );
5353REGISTER_SAFE_FUNCTION (System, escape_shell_cmd, &Utility::EscapeShellCmd, " cmd" );
@@ -475,7 +475,15 @@ ConfigObject::Ptr ScriptUtils::GetObject(const Value& vtype, const String& name)
475475 if (!ctype)
476476 return nullptr ;
477477
478- return ctype->GetObject (name);
478+ auto cfgObj = ctype->GetObject (name);
479+ if (cfgObj) {
480+ auto * frame = ScriptFrame::GetCurrentFrame ();
481+ if (frame->PermChecker ->CanAccessConfigObject (cfgObj)) {
482+ return cfgObj;
483+ }
484+ }
485+
486+ return nullptr ;
479487}
480488
481489Array::Ptr ScriptUtils::GetObjects (const Type::Ptr& type)
0 commit comments