/**
* Helper method to get the current User.
* Defaults to public 'Guest' user if not logged in.
- * @return \BookStack\User
+ * @return \BookStack\Auth\User
*/
function user()
{
- return auth()->user() ?: \BookStack\User::getDefault();
+ return auth()->user() ?: \BookStack\Auth\User::getDefault();
}
/**
}
// Check permission on ownable item
- $permissionService = app(\BookStack\Services\PermissionService::class);
+ $permissionService = app(\BookStack\Auth\Permissions\PermissionService::class);
return $permissionService->checkOwnableUserAccess($ownable, $permission);
}
* Helper to access system settings.
* @param $key
* @param bool $default
- * @return bool|string|\BookStack\Services\SettingService
+ * @return bool|string|\BookStack\Settings\SettingService
*/
function setting($key = null, $default = false)
{
- $settingService = resolve(\BookStack\Services\SettingService::class);
+ $settingService = resolve(\BookStack\Settings\SettingService::class);
if (is_null($key)) {
return $settingService;
}
if ($isFullUrl && !$forceAppDomain) {
return $path;
}
+
$path = trim($path, '/');
+ $trimBase = rtrim(config('app.url'), '/');
// Remove non-specified domain if forced and we have a domain
if ($isFullUrl && $forceAppDomain) {
+ if (strpos($path, $trimBase) === 0) {
+ $path = trim(substr($path, strlen($trimBase) - 1));
+ }
$explodedPath = explode('/', $path);
$path = implode('/', array_splice($explodedPath, 3));
}
return url($path);
}
- return rtrim(config('app.url'), '/') . '/' . $path;
+ return $trimBase . '/' . $path;
}
/**
* Get fetch an SVG icon as a string.
* Checks for icons defined within a custom theme before defaulting back
* to the 'resources/assets/icons' folder.
+ *
+ * Returns an empty string if icon file not found.
* @param $name
* @param array $attrs
* @return mixed
*/
function icon($name, $attrs = [])
{
- $attrs = array_merge($attrs, [
- 'class' => 'svg-icon'
- ]);
+ $attrs = array_merge([
+ 'class' => 'svg-icon',
+ 'data-icon' => $name
+ ], $attrs);
$attrString = ' ';
foreach ($attrs as $attrName => $attr) {
$attrString .= $attrName . '="' . $attr . '" ';
$themeIconPath = theme_path('icons/' . $name . '.svg');
if ($themeIconPath && file_exists($themeIconPath)) {
$iconPath = $themeIconPath;
+ } else if (!file_exists($iconPath)) {
+ return '';
}
$fileContents = file_get_contents($iconPath);