Compare commits

..

No commits in common. "d9aaa225aad191df8d272684d0bd626ff66e985b" and "40e577ef07e0ad20eee27e1f965bb271281824be" have entirely different histories.

11 changed files with 21 additions and 2766 deletions

View File

@ -2,7 +2,6 @@ help:
@echo "make [clean dev-front prod dev-back dev]"
clean:
pkill -9 node
@cp config/frontdev.env front/MyINPulse-front/.env
@cp config/frontdev.env .env
@cp config/frontdev.env MyINPulse-back/.env

View File

@ -56,18 +56,12 @@ public class WebSecurityCustomConfiguration {
http.authorizeHttpRequests(
authorize ->
authorize
.requestMatchers("/entrepreneur/**")
.requestMatchers("/entrepreneur/**", "/shared/**")
.access(hasRole("REALM_MyINPulse-entrepreneur"))
.requestMatchers("/admin/**")
.requestMatchers("/admin/**", "/shared/**")
.access(hasRole("REALM_MyINPulse-admin"))
.requestMatchers("/shared/**")
.hasAnyRole(
"REALM_MyINPulse-admin",
"REALM_MyINPulse-entrepreneur")
.requestMatchers("/unauth/**")
.authenticated()
.anyRequest()
.denyAll())
.authenticated())
.oauth2ResourceServer(
oauth2 ->
oauth2.jwt(

View File

@ -1,6 +1,6 @@
spring.application.name=myinpulse
spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://localhost:7080/realms/${VITE_KEYCLOAK_REALM}/protocol/openid-connect/certs
spring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:7080/realms/${VITE_KEYCLOAK_REALM}
spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://localhost:7080/realms/test/protocol/openid-connect/certs
spring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:7080/realms/test
spring.datasource.url=jdbc:postgresql://${DATABASE_URL}/${BACKEND_DB}
spring.datasource.username=${BACKEND_USER}
spring.datasource.password=${BACKEND_PASSWORD}

View File

@ -16,7 +16,7 @@ BACKEND_PASSWORD=backend_db_user_password
DATABASE_URL=localhost:5433
VITE_KEYCLOAK_URL=http://localhost:7080
VITE_KEYCLOAK_CLIENT_ID=MyINPulse-vite
VITE_KEYCLOAK_REALM=MyINPulse
VITE_KEYCLOAK_CLIENT_ID=myinpulse-dev
VITE_KEYCLOAK_REALM=test
VITE_APP_URL=http://localhost:5173
VITE_BACKEND_URL=http://localhost:8081/

View File

@ -22,8 +22,6 @@ paths:
description: Bad Request - Invalid project data provided (e.g., missing required fields).
"401":
description: Unauthorized - Authentication required or invalid token.
"403":
description: Bad Token - Invalid Keycloack configuration.
post:
operationId: addProjectManually
@ -51,8 +49,6 @@ paths:
description: Bad Request - Project already exists.
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/admin/projects/pending:
@ -74,9 +70,7 @@ paths:
items:
$ref: "./main.yaml#/components/schemas/project" # Assuming pending projects use the same schema
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
description: Unauthorized.
/admin/request-join:
get:
@ -98,8 +92,6 @@ paths:
$ref: "./main.yaml#/components/schemas/joinRequest"
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/admin/request-join/decision/{joinRequestId}:
post:
@ -129,9 +121,7 @@ paths:
"400":
description: Bad Request - Invalid input (e.g., missing decision).
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
description: Unauthorized.
/admin/projects/pending/decision:
@ -160,8 +150,6 @@ paths:
description: Bad Request - Invalid input (e.g., missing decision).
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/admin/pending-accounts: # Path updated
@ -184,8 +172,6 @@ paths:
$ref: "./main.yaml#/components/schemas/user-entrepreneur"
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/admin/accounts/validate/{userId}:
post: # Changed to POST as it changes state
@ -209,8 +195,7 @@ paths:
description: No Content - Account validated successfully.
"400":
description: Bad Request - Invalid user ID format.
"403":
description: Bad Token - Invalid Keycloack configuration.
"401":
description: Unauthorized.
@ -232,8 +217,6 @@ paths:
type: array
items:
$ref: "./main.yaml#/components/schemas/appointment"
"403":
description: Bad Token - Invalid Keycloack configuration.
"404":
description: no appointments found.
"401":
@ -271,8 +254,6 @@ paths:
schema: { $ref: "./main.yaml#/components/schemas/report" }
"400":
description: Bad Request - Invalid input (e.g., missing content, invalid appointment ID format).
"403":
description: Bad Token - Invalid Keycloack configuration.
"401":
description: Unauthorized.
@ -307,8 +288,6 @@ paths:
schema: { $ref: "./main.yaml#/components/schemas/report" }
"400":
description: Bad Request - Invalid input (e.g., missing content).
"403":
description: Bad Token - Invalid Keycloack configuration.
"401":
description: Unauthorized.
@ -335,8 +314,6 @@ paths:
description: No Content - Project removed successfully.
"400":
description: Bad Request - Invalid project ID format.
"403":
description: Bad Token - Invalid Keycloack configuration.
"401":
description: Unauthorized.
@ -363,9 +340,7 @@ paths:
"200": # Use 200 No Content
description: No Content - Admin rights granted successfully.
"400":
description: Bad Request - Invalid user ID format or user is already an admin.
"403":
description: Bad Token - Invalid Keycloack configuration.
description: Bad Request - Invalid user ID format or user is already an admin.
"401":
description: Unauthorized.
@ -382,6 +357,4 @@ paths:
"200":
description: No Content - Admin user created successfully.
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
description: Unauthorized.

View File

@ -257,8 +257,6 @@ paths:
description: Bad Request - Problem processing the token or user data derived from it.
'401':
description: Unauthorized - Valid authentication token required.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/unauth/request-join/{projectId}':
post:
summary: Request to join an existing project
@ -280,8 +278,6 @@ paths:
description: Bad Request - Invalid project ID format
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'409':
description: Already member/request pending.
/admin/pending-accounts:
@ -305,8 +301,6 @@ paths:
$ref: '#/components/schemas/user-entrepreneur'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/admin/accounts/validate/{userId}':
post:
operationId: validateUserAccount
@ -332,8 +326,6 @@ paths:
description: Bad Request - Invalid user ID format.
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/admin/request-join:
get:
operationId: getPendingProjects
@ -355,8 +347,6 @@ paths:
$ref: '#/components/schemas/joinRequest'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/admin/request-join/decision/{joinRequestId}':
post:
summary: Approve or reject a pending project join request
@ -386,8 +376,6 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing decision).'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/admin/projects:
get:
operationId: getAdminProjects
@ -411,8 +399,6 @@ paths:
description: 'Bad Request - Invalid project data provided (e.g., missing required fields).'
'401':
description: Unauthorized - Authentication required or invalid token.
'403':
description: Bad Token - Invalid Keycloack configuration.
post:
operationId: addProjectManually
summary: Manually add a new project
@ -438,8 +424,6 @@ paths:
$ref: '#/components/schemas/project'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'409':
description: Bad Request - Project already exists.
/admin/projects/pending:
@ -463,8 +447,6 @@ paths:
$ref: '#/components/schemas/project'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/admin/projects/pending/decision:
post:
operationId: decidePendingProject
@ -492,8 +474,6 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing decision).'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/admin/appointments/report/{appointmentId}':
post:
operationId: createAppointmentReport
@ -530,8 +510,6 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing content, invalid appointment ID format).'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
put:
operationId: updateAppointmentReport
summary: Update an existing appointment report
@ -567,8 +545,6 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing content).'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/admin/appointments/upcoming:
get:
operationId: getUpcomingAppointments
@ -590,8 +566,6 @@ paths:
$ref: '#/components/schemas/appointment'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'404':
description: no appointments found.
'/admin/projects/{projectId}':
@ -619,8 +593,6 @@ paths:
description: Bad Request - Invalid project ID format.
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/admin/make-admin/{userId}':
post:
operationId: grantAdminRights
@ -646,8 +618,6 @@ paths:
description: Bad Request - Invalid user ID format or user is already an admin.
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/admin/create-account:
post:
summary: Creates Admin out Jwt Token
@ -662,8 +632,6 @@ paths:
description: No Content - Admin user created successfully.
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/shared/projects/sectionCells/{projectId}/{sectionId}/{date}':
get:
operationId: getSectionCellsByDate
@ -708,8 +676,6 @@ paths:
description: Bad Request - Invalid parameter format.
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/shared/projects/entrepreneurs/{projectId}':
get:
operationId: getProjectEntrepreneurs
@ -740,7 +706,7 @@ paths:
'401':
description: Unauthorized.
'403':
description: Forbidden - User does not have access to this project or invalid Keycloack configuration.
description: Forbidden - User does not have access to this project.
'404':
description: Not Found - Project not found.
'/shared/projects/admin/{projectId}':
@ -771,7 +737,7 @@ paths:
'401':
description: Unauthorized.
'403':
description: Forbidden - User does not have access to this project or invalid Keycloack configuration.
description: Forbidden - User does not have access to this project.
'404':
description: Not Found - Project not found.
'/shared/projects/appointments/{projectId}':
@ -803,8 +769,6 @@ paths:
$ref: '#/components/schemas/appointment'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/shared/appointments/report/{appointmentId}':
get:
operationId: getAppointmentReport
@ -834,8 +798,6 @@ paths:
format: binary
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/shared/appointments/request:
post:
operationId: requestAppointment
@ -861,8 +823,6 @@ paths:
description: Bad Request - Invalid appointment details.
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/entrepreneur/projects:
get:
summary: gets the projectId of the project associated with the entrepreneur
@ -884,8 +844,6 @@ paths:
$ref: '#/components/schemas/project'
'401':
description: Unauthorized or identity not found
'403':
description: Bad Token - Invalid Keycloack configuration.
'404':
description: Bad Request - Invalid input or ID mismatch.
/entrepreneur/projects/request:
@ -915,8 +873,6 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing name).'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/entrepreneur/sectionCells:
post:
operationId: addSectionCell
@ -941,8 +897,6 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing content or sectionId).'
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/entrepreneur/sectionCells/{sectionCellId}':
put:
operationId: modifySectionCell
@ -973,8 +927,6 @@ paths:
description: OK - Section cell updated successfully. Returns the updated cell.
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'404':
description: Bad Request - Invalid input or ID mismatch.
delete:
@ -1001,7 +953,5 @@ paths:
description: Bad Request - Invalid ID format.
'401':
description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'404':
description: Bad Request - sectionCell not found.

View File

@ -27,8 +27,6 @@ paths:
description: Bad Request - Invalid input (e.g., missing name).
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/entrepreneur/sectionCells: # Base path
post:
@ -54,8 +52,6 @@ paths:
description: Bad Request - Invalid input (e.g., missing content or sectionId).
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/entrepreneur/sectionCells/{sectionCellId}:
put:
@ -88,8 +84,6 @@ paths:
description: Bad Request - Invalid input or ID mismatch.
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
delete:
operationId: removeSectionCell
@ -116,8 +110,6 @@ paths:
description: Bad Request - sectionCell not found.
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/entrepreneur/projects:
@ -141,6 +133,4 @@ paths:
"404":
description: Bad Request - Invalid input or ID mismatch.
"401":
description: Unauthorized or identity not found
"403":
description: Bad Token - Invalid Keycloack configuration.
description: Unauthorized or identity not found

View File

@ -36,9 +36,7 @@ paths:
items:
$ref: "./main.yaml#/components/schemas/sectionCell"
"400":
description: Bad Request - Invalid parameter format.
"403":
description: Bad Token - Invalid Keycloack configuration.
description: Bad Request - Invalid parameter format.
"401":
description: Unauthorized.
@ -70,7 +68,7 @@ paths:
"401":
description: Unauthorized.
"403":
description: Forbidden - User does not have access to this project or invalid Keycloack configuration.
description: Forbidden - User does not have access to this project.
"404":
description: Not Found - Project not found.
@ -99,7 +97,7 @@ paths:
"401":
description: Unauthorized.
"403":
description: Forbidden - User does not have access to this project or invalid Keycloack configuration.
description: Forbidden - User does not have access to this project.
"404":
description: Not Found - Project not found.
@ -128,8 +126,6 @@ paths:
type: array
items:
$ref: "./main.yaml#/components/schemas/appointment"
"403":
description: Bad Token - Invalid Keycloack configuration.
"401":
description: Unauthorized.
@ -160,8 +156,6 @@ paths:
format: binary
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/shared/appointments/request:
@ -186,8 +180,7 @@ paths:
description: Accepted - Appointment request submitted.
"400":
description: Bad Request - Invalid appointment details.
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.

View File

@ -24,8 +24,6 @@ paths:
description: Bad Request - Problem processing the token or user data derived from it.
"401":
description: Unauthorized - Valid authentication token required.
"403":
description: Bad Token - Invalid Keycloack configuration.
/unauth/request-join/{projectId}:
post:
summary: Request to join an existing project
@ -49,8 +47,6 @@ paths:
description: Already member/request pending.
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/unauth/request-admin-role:
post:
summary: Request to join an existing project
@ -63,6 +59,4 @@ paths:
"400":
description: Bad Request - Invalid project ID format or already member/request pending.
"401":
description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
description: Unauthorized.

View File

@ -58,7 +58,7 @@ const USERID = ref("");
<tr>
<td>Get Pending Accounts</td>
<td>
<button @click="callApi('/admin/pending-accounts')">
<button @click="callApi('admin/get_pending_accounts')">
call
</button>
</td>

File diff suppressed because it is too large Load Diff