Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Зуев Егор
/
wiki.dev
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Authored by
Dan Brown
2016-03-06 12:55:08 +0000
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Commit
66c56e9d02efe5ee6c77fcb41ba82176c65f5475
66c56e9d
1 parent
e744d4c8
Added settings helper and formatted code in some files
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
37 additions
and
25 deletions
app/Entity.php
app/Http/Controllers/Auth/AuthController.php
app/Http/Middleware/Authenticate.php
app/Repos/PermissionsRepo.php
app/Repos/UserRepo.php
app/Services/EmailConfirmationService.php
app/Services/ImageService.php
app/Services/SocialAuthService.php
app/helpers.php
resources/views/base.blade.php
app/Entity.php
View file @
66c56e9
...
...
@@ -107,7 +107,7 @@ abstract class Entity extends Ownable
$exactTerms
=
[];
foreach
(
$terms
as
$key
=>
$term
)
{
$term
=
htmlentities
(
$term
,
ENT_QUOTES
);
$term
=
preg_replace
(
'/[+\-><\(\)~*\"@]+/'
,
' '
,
$term
);
$term
=
preg_replace
(
'/[+\-><\(\)~*\"@]+/'
,
' '
,
$term
);
if
(
preg_match
(
'/\s/'
,
$term
))
{
$exactTerms
[]
=
'%'
.
$term
.
'%'
;
$term
=
'"'
.
$term
.
'"'
;
...
...
@@ -123,7 +123,7 @@ abstract class Entity extends Ownable
// Ensure at least one exact term matches if in search
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
(
$fieldsToSearch
as
$field
)
{
$query
->
orWhere
(
$field
,
'like'
,
$exactTerm
);
...
...
app/Http/Controllers/Auth/AuthController.php
View file @
66c56e9
...
...
@@ -41,9 +41,9 @@ class AuthController extends Controller
/**
* Create a new authentication controller instance.
* @param SocialAuthService
$socialAuthService
* @param SocialAuthService $socialAuthService
* @param EmailConfirmationService $emailConfirmationService
* @param UserRepo
$userRepo
* @param UserRepo $userRepo
*/
public
function
__construct
(
SocialAuthService
$socialAuthService
,
EmailConfirmationService
$emailConfirmationService
,
UserRepo
$userRepo
)
{
...
...
@@ -63,15 +63,15 @@ class AuthController extends Controller
protected
function
validator
(
array
$data
)
{
return
Validator
::
make
(
$data
,
[
'name'
=>
'required|max:255'
,
'email'
=>
'required|email|max:255|unique:users'
,
'name'
=>
'required|max:255'
,
'email'
=>
'required|email|max:255|unique:users'
,
'password'
=>
'required|min:6'
,
]);
}
protected
function
checkRegistrationAllowed
()
{
if
(
!
\Setting
::
get
(
'registration-enabled'
))
{
if
(
!
setting
(
'registration-enabled'
))
{
throw
new
UserRegistrationException
(
'Registrations are currently disabled.'
,
'/login'
);
}
}
...
...
@@ -112,7 +112,7 @@ class AuthController extends Controller
/**
* Overrides the action when a user is authenticated.
* If the user authenticated but does not exist in the user table we create them.
* @param Request
$request
* @param Request $request
* @param Authenticatable $user
* @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
$userData
=
[
'name'
=>
$socialUser
->
getName
(),
'email'
=>
$socialUser
->
getEmail
(),
'name'
=>
$socialUser
->
getName
(),
'email'
=>
$socialUser
->
getEmail
(),
'password'
=>
str_random
(
30
)
];
return
$this
->
registerUser
(
$userData
,
$socialAccount
);
...
...
@@ -162,7 +162,7 @@ class AuthController extends Controller
/**
* The registrations flow for all users.
* @param array
$userData
* @param array $userData
* @param bool|false|SocialAccount $socialAccount
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
* @throws UserRegistrationException
...
...
@@ -170,8 +170,8 @@ class AuthController extends Controller
*/
protected
function
registerUser
(
array
$userData
,
$socialAccount
=
false
)
{
if
(
\Setting
::
get
(
'registration-restrict'
))
{
$restrictedEmailDomains
=
explode
(
','
,
str_replace
(
' '
,
''
,
\Setting
::
get
(
'registration-restrict'
)));
if
(
setting
(
'registration-restrict'
))
{
$restrictedEmailDomains
=
explode
(
','
,
str_replace
(
' '
,
''
,
setting
(
'registration-restrict'
)));
$userEmailDomain
=
$domain
=
substr
(
strrchr
(
$userData
[
'email'
],
"@"
),
1
);
if
(
!
in_array
(
$userEmailDomain
,
$restrictedEmailDomains
))
{
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
);
}
if
(
\Setting
::
get
(
'registration-confirmation'
)
||
\Setting
::
get
(
'registration-restrict'
))
{
if
(
setting
(
'registration-confirmation'
)
||
setting
(
'registration-restrict'
))
{
$newUser
->
email_confirmed
=
false
;
$newUser
->
save
();
$this
->
emailConfirmationService
->
sendConfirmation
(
$newUser
);
...
...
app/Http/Middleware/Authenticate.php
View file @
66c56e9
...
...
@@ -39,7 +39,7 @@ class Authenticate
return
redirect
()
->
guest
(
'/register/confirm/awaiting'
);
}
if
(
$this
->
auth
->
guest
()
&&
!
Setting
::
get
(
'app-public'
))
{
if
(
$this
->
auth
->
guest
()
&&
!
setting
(
'app-public'
))
{
if
(
$request
->
ajax
())
{
return
response
(
'Unauthorized.'
,
401
);
}
else
{
...
...
app/Repos/PermissionsRepo.php
View file @
66c56e9
...
...
@@ -124,7 +124,7 @@ class PermissionsRepo
// Prevent deleting admin role or default registration role.
if
(
$role
->
name
===
'admin'
)
{
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.'
);
}
...
...
app/Repos/UserRepo.php
View file @
66c56e9
...
...
@@ -77,7 +77,7 @@ class UserRepo
*/
public
function
attachDefaultRole
(
$user
)
{
$roleId
=
Setting
::
get
(
'registration-role'
);
$roleId
=
setting
(
'registration-role'
);
if
(
$roleId
===
false
)
$roleId
=
$this
->
role
->
first
()
->
id
;
$user
->
attachRoleId
(
$roleId
);
}
...
...
app/Services/EmailConfirmationService.php
View file @
66c56e9
...
...
@@ -45,7 +45,7 @@ class EmailConfirmationService
'token'
=>
$token
,
]);
$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
.
'.'
);
});
}
...
...
app/Services/ImageService.php
View file @
66c56e9
...
...
@@ -79,7 +79,7 @@ class ImageService
private
function
saveNew
(
$imageName
,
$imageData
,
$type
)
{
$storage
=
$this
->
getStorage
();
$secureUploads
=
Setting
::
get
(
'app-secure-images'
);
$secureUploads
=
setting
(
'app-secure-images'
);
$imageName
=
str_replace
(
' '
,
'-'
,
$imageName
);
if
(
$secureUploads
)
$imageName
=
str_random
(
16
)
.
'-'
.
$imageName
;
...
...
app/Services/SocialAuthService.php
View file @
66c56e9
...
...
@@ -135,7 +135,7 @@ class SocialAuthService
// 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'
;
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'
;
}
throw
new
SocialSignInException
(
$message
.
'.'
,
'/login'
);
...
...
app/helpers.php
View file @
66c56e9
...
...
@@ -58,4 +58,16 @@ function userCan($permission, \BookStack\Ownable $ownable = null)
$action
=
end
(
$explodedPermission
);
$hasAccess
=
$restrictionService
->
checkIfEntityRestricted
(
$ownable
,
$action
);
return
$hasAccess
&&
$hasPermission
;
}
\ No newline at end of file
}
/**
* 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
);
}
...
...
resources/views/base.blade.php
View file @
66c56e9
<!DOCTYPE html>
<html>
<head>
<title>
{{ isset($pageTitle) ? $pageTitle . ' | ' : '' }}{{
Setting::get
('app-name', 'BookStack') }}
</title>
<title>
{{ isset($pageTitle) ? $pageTitle . ' | ' : '' }}{{
setting
('app-name', 'BookStack') }}
</title>
<!-- Meta -->
<meta
name=
"viewport"
content=
"width=device-width"
>
...
...
@@ -29,10 +29,10 @@
<div
class=
"row"
>
<div
class=
"col-lg-4 col-sm-4"
ng-non-bindable
>
<a
href=
"/"
class=
"logo"
>
@if(
Setting::get
('app-logo', '') !== 'none')
<img
class=
"logo-image"
src=
"{{
Setting::get('app-logo', '') === '' ? '/logo.png' : Setting::get
('app-logo', '') }}"
alt=
"Logo"
>
@if(
setting
('app-logo', '') !== 'none')
<img
class=
"logo-image"
src=
"{{
setting('app-logo', '') === '' ? '/logo.png' : setting
('app-logo', '') }}"
alt=
"Logo"
>
@endif
<span
class=
"logo-text"
>
{{
Setting::get
('app-name', 'BookStack') }}
</span>
<span
class=
"logo-text"
>
{{
setting
('app-name', 'BookStack') }}
</span>
</a>
</div>
<div
class=
"col-lg-4 col-sm-3 text-center"
>
...
...
Please
register
or
sign in
to post a comment