1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-01-31 12:11:37 +01:00

Added settings helper and formatted code in some files

This commit is contained in:
Dan Brown 2016-03-06 12:55:08 +00:00
parent e744d4c82c
commit 66c56e9d02
10 changed files with 37 additions and 25 deletions

View File

@ -107,7 +107,7 @@ abstract class Entity extends Ownable
$exactTerms = []; $exactTerms = [];
foreach ($terms as $key => $term) { foreach ($terms as $key => $term) {
$term = htmlentities($term, ENT_QUOTES); $term = htmlentities($term, ENT_QUOTES);
$term = preg_replace('/[+\-><\(\)~*\"@]+/', ' ', $term); $term = preg_replace('/[+\-><\(\)~*\"@]+/', ' ', $term);
if (preg_match('/\s/', $term)) { if (preg_match('/\s/', $term)) {
$exactTerms[] = '%' . $term . '%'; $exactTerms[] = '%' . $term . '%';
$term = '"' . $term . '"'; $term = '"' . $term . '"';
@ -123,7 +123,7 @@ abstract class Entity extends Ownable
// Ensure at least one exact term matches if in search // Ensure at least one exact term matches if in search
if (count($exactTerms) > 0) { if (count($exactTerms) > 0) {
$search = $search->where(function($query) use ($exactTerms, $fieldsToSearch) { $search = $search->where(function ($query) use ($exactTerms, $fieldsToSearch) {
foreach ($exactTerms as $exactTerm) { foreach ($exactTerms as $exactTerm) {
foreach ($fieldsToSearch as $field) { foreach ($fieldsToSearch as $field) {
$query->orWhere($field, 'like', $exactTerm); $query->orWhere($field, 'like', $exactTerm);

View File

@ -41,9 +41,9 @@ class AuthController extends Controller
/** /**
* Create a new authentication controller instance. * Create a new authentication controller instance.
* @param SocialAuthService $socialAuthService * @param SocialAuthService $socialAuthService
* @param EmailConfirmationService $emailConfirmationService * @param EmailConfirmationService $emailConfirmationService
* @param UserRepo $userRepo * @param UserRepo $userRepo
*/ */
public function __construct(SocialAuthService $socialAuthService, EmailConfirmationService $emailConfirmationService, UserRepo $userRepo) public function __construct(SocialAuthService $socialAuthService, EmailConfirmationService $emailConfirmationService, UserRepo $userRepo)
{ {
@ -63,15 +63,15 @@ class AuthController extends Controller
protected function validator(array $data) protected function validator(array $data)
{ {
return Validator::make($data, [ return Validator::make($data, [
'name' => 'required|max:255', 'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users', 'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6', 'password' => 'required|min:6',
]); ]);
} }
protected function checkRegistrationAllowed() protected function checkRegistrationAllowed()
{ {
if (!\Setting::get('registration-enabled')) { if (!setting('registration-enabled')) {
throw new UserRegistrationException('Registrations are currently disabled.', '/login'); throw new UserRegistrationException('Registrations are currently disabled.', '/login');
} }
} }
@ -112,7 +112,7 @@ class AuthController extends Controller
/** /**
* Overrides the action when a user is authenticated. * Overrides the action when a user is authenticated.
* If the user authenticated but does not exist in the user table we create them. * If the user authenticated but does not exist in the user table we create them.
* @param Request $request * @param Request $request
* @param Authenticatable $user * @param Authenticatable $user
* @return \Illuminate\Http\RedirectResponse * @return \Illuminate\Http\RedirectResponse
*/ */
@ -153,8 +153,8 @@ class AuthController extends Controller
// Create an array of the user data to create a new user instance // Create an array of the user data to create a new user instance
$userData = [ $userData = [
'name' => $socialUser->getName(), 'name' => $socialUser->getName(),
'email' => $socialUser->getEmail(), 'email' => $socialUser->getEmail(),
'password' => str_random(30) 'password' => str_random(30)
]; ];
return $this->registerUser($userData, $socialAccount); return $this->registerUser($userData, $socialAccount);
@ -162,7 +162,7 @@ class AuthController extends Controller
/** /**
* The registrations flow for all users. * The registrations flow for all users.
* @param array $userData * @param array $userData
* @param bool|false|SocialAccount $socialAccount * @param bool|false|SocialAccount $socialAccount
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
* @throws UserRegistrationException * @throws UserRegistrationException
@ -170,8 +170,8 @@ class AuthController extends Controller
*/ */
protected function registerUser(array $userData, $socialAccount = false) protected function registerUser(array $userData, $socialAccount = false)
{ {
if (\Setting::get('registration-restrict')) { if (setting('registration-restrict')) {
$restrictedEmailDomains = explode(',', str_replace(' ', '', \Setting::get('registration-restrict'))); $restrictedEmailDomains = explode(',', str_replace(' ', '', setting('registration-restrict')));
$userEmailDomain = $domain = substr(strrchr($userData['email'], "@"), 1); $userEmailDomain = $domain = substr(strrchr($userData['email'], "@"), 1);
if (!in_array($userEmailDomain, $restrictedEmailDomains)) { if (!in_array($userEmailDomain, $restrictedEmailDomains)) {
throw new UserRegistrationException('That email domain does not have access to this application', '/register'); throw new UserRegistrationException('That email domain does not have access to this application', '/register');
@ -183,7 +183,7 @@ class AuthController extends Controller
$newUser->socialAccounts()->save($socialAccount); $newUser->socialAccounts()->save($socialAccount);
} }
if (\Setting::get('registration-confirmation') || \Setting::get('registration-restrict')) { if (setting('registration-confirmation') || setting('registration-restrict')) {
$newUser->email_confirmed = false; $newUser->email_confirmed = false;
$newUser->save(); $newUser->save();
$this->emailConfirmationService->sendConfirmation($newUser); $this->emailConfirmationService->sendConfirmation($newUser);

View File

@ -39,7 +39,7 @@ class Authenticate
return redirect()->guest('/register/confirm/awaiting'); return redirect()->guest('/register/confirm/awaiting');
} }
if ($this->auth->guest() && !Setting::get('app-public')) { if ($this->auth->guest() && !setting('app-public')) {
if ($request->ajax()) { if ($request->ajax()) {
return response('Unauthorized.', 401); return response('Unauthorized.', 401);
} else { } else {

View File

@ -124,7 +124,7 @@ class PermissionsRepo
// Prevent deleting admin role or default registration role. // Prevent deleting admin role or default registration role.
if ($role->name === 'admin') { if ($role->name === 'admin') {
throw new PermissionsException('The admin role cannot be deleted'); throw new PermissionsException('The admin role cannot be deleted');
} else if ($role->id == Setting::get('registration-role')) { } else if ($role->id == setting('registration-role')) {
throw new PermissionsException('This role cannot be deleted while set as the default registration role.'); throw new PermissionsException('This role cannot be deleted while set as the default registration role.');
} }

View File

@ -77,7 +77,7 @@ class UserRepo
*/ */
public function attachDefaultRole($user) public function attachDefaultRole($user)
{ {
$roleId = Setting::get('registration-role'); $roleId = setting('registration-role');
if ($roleId === false) $roleId = $this->role->first()->id; if ($roleId === false) $roleId = $this->role->first()->id;
$user->attachRoleId($roleId); $user->attachRoleId($roleId);
} }

View File

@ -45,7 +45,7 @@ class EmailConfirmationService
'token' => $token, 'token' => $token,
]); ]);
$this->mailer->send('emails/email-confirmation', ['token' => $token], function (Message $message) use ($user) { $this->mailer->send('emails/email-confirmation', ['token' => $token], function (Message $message) use ($user) {
$appName = \Setting::get('app-name', 'BookStack'); $appName = setting('app-name', 'BookStack');
$message->to($user->email, $user->name)->subject('Confirm your email on ' . $appName . '.'); $message->to($user->email, $user->name)->subject('Confirm your email on ' . $appName . '.');
}); });
} }

View File

@ -79,7 +79,7 @@ class ImageService
private function saveNew($imageName, $imageData, $type) private function saveNew($imageName, $imageData, $type)
{ {
$storage = $this->getStorage(); $storage = $this->getStorage();
$secureUploads = Setting::get('app-secure-images'); $secureUploads = setting('app-secure-images');
$imageName = str_replace(' ', '-', $imageName); $imageName = str_replace(' ', '-', $imageName);
if ($secureUploads) $imageName = str_random(16) . '-' . $imageName; if ($secureUploads) $imageName = str_random(16) . '-' . $imageName;

View File

@ -135,7 +135,7 @@ class SocialAuthService
// Otherwise let the user know this social account is not used by anyone. // Otherwise let the user know this social account is not used by anyone.
$message = 'This ' . $socialDriver . ' account is not linked to any users. Please attach it in your profile settings'; $message = 'This ' . $socialDriver . ' account is not linked to any users. Please attach it in your profile settings';
if (\Setting::get('registration-enabled')) { if (setting('registration-enabled')) {
$message .= ' or, If you do not yet have an account, You can register an account using the ' . $socialDriver . ' option'; $message .= ' or, If you do not yet have an account, You can register an account using the ' . $socialDriver . ' option';
} }
throw new SocialSignInException($message . '.', '/login'); throw new SocialSignInException($message . '.', '/login');

View File

@ -58,4 +58,16 @@ function userCan($permission, \BookStack\Ownable $ownable = null)
$action = end($explodedPermission); $action = end($explodedPermission);
$hasAccess = $restrictionService->checkIfEntityRestricted($ownable, $action); $hasAccess = $restrictionService->checkIfEntityRestricted($ownable, $action);
return $hasAccess && $hasPermission; return $hasAccess && $hasPermission;
} }
/**
* Helper to access system settings.
* @param $key
* @param bool $default
* @return mixed
*/
function setting($key, $default = false)
{
$settingService = app('BookStack\Services\SettingService');
return $settingService->get($key, $default);
}

View File

@ -1,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>{{ isset($pageTitle) ? $pageTitle . ' | ' : '' }}{{ Setting::get('app-name', 'BookStack') }}</title> <title>{{ isset($pageTitle) ? $pageTitle . ' | ' : '' }}{{ setting('app-name', 'BookStack') }}</title>
<!-- Meta --> <!-- Meta -->
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
@ -29,10 +29,10 @@
<div class="row"> <div class="row">
<div class="col-lg-4 col-sm-4" ng-non-bindable> <div class="col-lg-4 col-sm-4" ng-non-bindable>
<a href="/" class="logo"> <a href="/" class="logo">
@if(Setting::get('app-logo', '') !== 'none') @if(setting('app-logo', '') !== 'none')
<img class="logo-image" src="{{ Setting::get('app-logo', '') === '' ? '/logo.png' : Setting::get('app-logo', '') }}" alt="Logo"> <img class="logo-image" src="{{ setting('app-logo', '') === '' ? '/logo.png' : setting('app-logo', '') }}" alt="Logo">
@endif @endif
<span class="logo-text">{{ Setting::get('app-name', 'BookStack') }}</span> <span class="logo-text">{{ setting('app-name', 'BookStack') }}</span>
</a> </a>
</div> </div>
<div class="col-lg-4 col-sm-3 text-center"> <div class="col-lg-4 col-sm-3 text-center">