Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Role based authorization spa #58

Merged
merged 35 commits into from
Nov 2, 2024
Merged

Role based authorization spa #58

merged 35 commits into from
Nov 2, 2024

Conversation

LimZiJia
Copy link

Functional changes

Now '\questions' will query if user is admin. Many elements are now only loaded with ngIF* on this condition.

Admin view of '\questions':

image

User view of '\questions':

image

Changes to how '\questions' looks

Description is not hidden to a sliding panel and can be viewed by clicking on the row. This is to declutter the page.
image

Checklist

  • I have updated documentation
  • All tests passing

samuelim01 and others added 30 commits September 27, 2024 20:19
Got user service to work in docker. It can only interface with an atlas cloud server currently.
User-service in docker can only communicate with an atlas mongodb server.
Some files should have been committed in the previous commit. They are
mostly to do with the dockerisation process. The merge with main might
have messed with it.
Somehow .gitignore was not commited with the last commit
Apparently bcrypt library cannot run on Docker's architecture. Change
bcrypt to bcryptjs for compatibility.
Test does not currently work
Not connected to the login interface yet. Commiting to make a clean Pr.
* Remove orphan history file
* Move `index.js` and `server.js` to the correct directory
* Reduce use of port
Frontend is now able to POST to user login endpoint and receive a JWT
token and some user details. These are stored in localStorage.
Some new files were untracked.
Right now if register is successful, it will auto login.

Login if successful will bring users to the '/' directory.

If user is already logged in, attemptes to reach '/account' will be
immediately redirected to '/'
To keep it consistent with main, I have renamed files that are not part
of app from filename to "_filename" out of app. I also cleaned up the
outdated user-service because it was renamed already.
There was a duplicated of "user" in compose.yml.
Used ng generate guard to generate these.
Removed those _guards and implemented as a service instead. Added a
guard to '/questions' so only logged in users with tokens that have not
expired can access it. If they are not logged in, users will be directed
to '/login' to log in.
Was magically missing from last commit.
- Removed user network (errornous merging).
- Removed duplicate providers
Added interface for user service response.
Trying to figure out how to get status code from HttpClient with
HttpResponse.
Realised that the error interceptor was mishandling the errors. Now it
will throw an Error object with properties .message and .cause. Where
message is the original error.message, and cause is just the original
error itself.
Now, SPA will look different for admin and normal user. Also changed how
it looks a little bit to make it look more tidy.
Removed some redundant files and fix with new api url.
Copy link

@samuelim01 samuelim01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a few small comments

frontend/src/app/questions/questions.component.html Outdated Show resolved Hide resolved
frontend/src/app/questions/questions.component.html Outdated Show resolved Hide resolved
frontend/src/app/questions/questions.component.html Outdated Show resolved Hide resolved
frontend/src/app/questions/questions.component.html Outdated Show resolved Hide resolved
changed *NgIf to use the newer @if. Bugs fixed include toolbar and table
being of different sizes and clicking the "edit" button activates the
sliding window.
There was a space between @ and if which broke the code.
Copy link

@samuelim01 samuelim01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@LimZiJia LimZiJia merged commit 33e19d8 into main Nov 2, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants