public static function addPermissions($perms1, $perms2)
{
// Union the global permissions.
$result = array_unique(array_merge(array_filter($perms1, 'is_string'), array_filter($perms2, 'is_string')));
// Union the junction permissions.
$junctions1 = array_filter($perms1, 'is_array');
$junctions2 = array_filter($perms2, 'is_array');
foreach ($junctions2 as $key => $ids) {
if (empty($junctions1[$key])) {
$junctions1[$key] = $ids;
} else {
$junctions1[$key] = array_unique(array_merge($junctions1[$key], $ids));
}
}
$result = array_merge($result, $junctions1);
return $result;
}