Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
D
Doorcode
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
5
Issues
5
List
Boards
Labels
Service Desk
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Guardians of the Kretschmar Elock System
Doorcode
Commits
3e113228
Commit
3e113228
authored
Feb 13, 2021
by
Jacob Priddy
👌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix major bug on entity deletion and redirect new users to doorcode
creation page
parent
55b6d3dc
Pipeline
#16521
canceled with stages
Changes
9
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
50 additions
and
16 deletions
+50
-16
docker-compose.example.yml
docker-compose.example.yml
+0
-0
docker-compose.prod.yml
docker-compose.prod.yml
+1
-1
src/backend/app/Door.php
src/backend/app/Door.php
+3
-3
src/backend/app/Http/Controllers/Api/AuthController.php
src/backend/app/Http/Controllers/Api/AuthController.php
+10
-1
src/backend/app/Http/Controllers/Web/Admin/LoginController.php
...ackend/app/Http/Controllers/Web/Admin/LoginController.php
+1
-5
src/backend/app/User.php
src/backend/app/User.php
+4
-4
src/backend/src/UseCases/Users/Authenticate/APIPresenter.php
src/backend/src/UseCases/Users/Authenticate/APIPresenter.php
+11
-0
src/backend/src/UseCases/Users/Authenticate/Authenticate.php
src/backend/src/UseCases/Users/Authenticate/Authenticate.php
+4
-1
src/backend/src/UseCases/Users/Authenticate/ResponseModel.php
...backend/src/UseCases/Users/Authenticate/ResponseModel.php
+16
-1
No files found.
docker-compose.
yml.example
→
docker-compose.
example.yml
View file @
3e113228
File moved
docker-compose.prod.yml
View file @
3e113228
...
...
@@ -88,7 +88,7 @@ services:
networks
:
-
doorcode
dbadmin
:
image
:
dpage/pgadmin4:4.
29
image
:
dpage/pgadmin4:4.
30
volumes
:
-
doorcode_pgadmin-data:/var/lib/pgadmin
environment
:
...
...
src/backend/app/Door.php
View file @
3e113228
...
...
@@ -54,19 +54,19 @@ class Door extends Authenticatable
// Delete all entries
/** @var \App\Entry $entry */
foreach
(
$door
->
entries
()
as
$entry
)
{
foreach
(
$door
->
entries
()
->
get
()
as
$entry
)
{
$entry
->
delete
();
}
// Delete all attempts
/** @var \App\Attempt $attempt */
foreach
(
$door
->
attempts
()
as
$attempt
)
{
foreach
(
$door
->
attempts
()
->
get
()
as
$attempt
)
{
$attempt
->
delete
();
}
// Delete all overrides
/** @var \App\Override $override */
foreach
(
$door
->
overrides
()
as
$override
)
{
foreach
(
$door
->
overrides
()
->
get
()
as
$override
)
{
$override
->
delete
();
}
});
...
...
src/backend/app/Http/Controllers/Api/AuthController.php
View file @
3e113228
...
...
@@ -134,7 +134,16 @@ class AuthController extends ApiController
);
}
return
redirect
()
->
intended
(
url
(
config
(
'saml.home_page'
)))
->
withCookie
(
$response
=
redirect
();
if
(
$presenter
->
isNewUser
())
{
$response
=
$response
->
route
(
'web.doorcode'
)
->
with
(
'message'
,
'I see you are a new user! Please set your doorcode for door access.'
);
}
else
{
$response
=
$response
->
intended
(
url
(
config
(
'saml.home_page'
)));
}
return
$response
->
withCookie
(
$this
->
cookieJar
->
make
(
'api_token'
,
$presenter
->
getViewModel
()[
'token'
][
'value'
],
...
...
src/backend/app/Http/Controllers/Web/Admin/LoginController.php
View file @
3e113228
...
...
@@ -29,11 +29,7 @@ class LoginController extends Controller
try
{
$authenticateUseCase
->
attempt
(
$presenter
,
$this
->
request
->
all
());
}
catch
(
AuthenticationException
$e
)
{
throw
ValidationException
::
withMessages
([
'email'
=>
[
trans
(
'auth.failed'
)],
]);
}
catch
(
EntityNotFoundException
$e
)
{
}
catch
(
AuthenticationException
|
EntityNotFoundException
$e
)
{
throw
ValidationException
::
withMessages
([
'email'
=>
[
trans
(
'auth.failed'
)],
]);
...
...
src/backend/app/User.php
View file @
3e113228
...
...
@@ -64,22 +64,22 @@ class User extends Authenticatable
// Delete all tokens
/** @var \App\Token $token */
foreach
(
$user
->
tokens
()
as
$token
)
{
foreach
(
$user
->
tokens
()
->
get
()
as
$token
)
{
$token
->
delete
();
}
/** @var \App\Entry $entry */
foreach
(
$user
->
entries
()
as
$entry
)
{
foreach
(
$user
->
entries
()
->
get
()
as
$entry
)
{
$entry
->
delete
();
}
/** @var \App\Override $override */
foreach
(
$user
->
overrides
()
as
$override
)
{
foreach
(
$user
->
overrides
()
->
get
()
as
$override
)
{
$override
->
delete
();
}
/** @var \App\Request $request */
foreach
(
$user
->
requests
()
as
$request
)
{
foreach
(
$user
->
requests
()
->
get
()
as
$request
)
{
$request
->
delete
();
}
});
...
...
src/backend/src/UseCases/Users/Authenticate/APIPresenter.php
View file @
3e113228
...
...
@@ -23,6 +23,7 @@ class APIPresenter extends BasePresenter implements Presenter
}
$this
->
viewModel
[
'user'
]
=
self
::
formatFullUser
(
$user
);
$this
->
viewModel
[
'is_new'
]
=
$responseModel
->
isNewUser
();
$this
->
viewModel
[
'token'
]
=
[
'value'
=>
$responseModel
->
getRawToken
(),
'expires_at'
=>
self
::
formatDateTime
(
$token
->
getExpiresAt
()),
...
...
@@ -35,4 +36,14 @@ class APIPresenter extends BasePresenter implements Presenter
{
return
$this
->
viewModel
;
}
/**
* Returns if the user was newly created
*
* @return bool
*/
public
function
isNewUser
():
bool
{
return
$this
->
viewModel
[
'is_new'
];
}
}
src/backend/src/UseCases/Users/Authenticate/Authenticate.php
View file @
3e113228
...
...
@@ -117,6 +117,7 @@ class Authenticate implements AuthenticateUseCase
* - Emplid found, email not found
* Update found emplid user
*/
$newlyCreated
=
false
;
if
(
!
$user
)
{
if
(
$emailUser
)
{
$user
=
$this
->
users
->
update
(
$emailUser
->
getId
(),
new
User
(
...
...
@@ -133,6 +134,8 @@ class Authenticate implements AuthenticateUseCase
$emailUser
->
getUpdatedAt
()
));
}
else
{
// We want to direct new users to the
$newlyCreated
=
true
;
$user
=
$this
->
users
->
create
(
new
User
(
0
,
$samlUser
->
getFirstName
(),
...
...
@@ -177,7 +180,7 @@ class Authenticate implements AuthenticateUseCase
$token
=
$this
->
tokens
->
createLoginToken
(
$user
->
getId
(),
$this
->
salt
);
$response
=
new
ResponseModel
(
$user
,
$token
->
getRaw
(),
$token
->
getToken
());
$response
=
new
ResponseModel
(
$user
,
$token
->
getRaw
(),
$token
->
getToken
()
,
$newlyCreated
);
$presenter
->
present
(
$response
);
}
...
...
src/backend/src/UseCases/Users/Authenticate/ResponseModel.php
View file @
3e113228
...
...
@@ -22,16 +22,23 @@ class ResponseModel
*/
protected
string
$tokenString
;
/**
* @var bool
*/
protected
bool
$newUser
;
/**
* @param User $user
* @param string $tokenString
* @param Token $token
* @param bool $newUser
*/
public
function
__construct
(
User
$user
,
string
$tokenString
,
Token
$token
)
public
function
__construct
(
User
$user
,
string
$tokenString
,
Token
$token
,
bool
$newUser
=
false
)
{
$this
->
user
=
$user
;
$this
->
token
=
$token
;
$this
->
tokenString
=
$tokenString
;
$this
->
newUser
=
$newUser
;
}
/**
...
...
@@ -57,4 +64,12 @@ class ResponseModel
{
return
$this
->
tokenString
;
}
/**
* @return bool
*/
public
function
isNewUser
():
bool
{
return
$this
->
newUser
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment