Skip to content

Commit 26ac875

Browse files
committed
Limit auto file imports to Craft/plugin class names
1 parent d170b3c commit 26ac875

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/WebhookHelper.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,16 @@ private static function _findClasses(): array
9898
}
9999
if ($autoloadClass !== null) {
100100
try {
101+
// Get a list of namespaces we care about
102+
$namespaces = ['craft'];
103+
foreach (Craft::$app->getPlugins()->getAllPlugins() as $plugin) {
104+
$classParts = explode('\\', get_class($plugin));
105+
if (count($classParts) > 1) {
106+
$namespaces[] = implode('\\', array_slice($classParts, 0, -1));
107+
}
108+
}
109+
$namespaces = array_unique($namespaces);
110+
101111
/** @var ClassLoader $classLoader */
102112
$classLoader = $autoloadClass::getLoader();
103113
foreach ($classLoader->getClassMap() as $class => $file) {
@@ -106,11 +116,16 @@ private static function _findClasses(): array
106116
!interface_exists($class, false) &&
107117
!trait_exists($class, false) &&
108118
file_exists($file) &&
109-
strpos($class, 'Codeception') !== 0 &&
110119
substr($class, -4) !== 'Test' &&
111120
substr($class, -8) !== 'TestCase'
112121
) {
113-
require $file;
122+
// See if it's in a namespace we care about
123+
foreach ($namespaces as $namespace) {
124+
if (strpos($class, $namespace . '\\') === 0) {
125+
require $file;
126+
break;
127+
}
128+
}
114129
}
115130
}
116131
} catch (\Throwable $e) {

0 commit comments

Comments
 (0)