Fix Razorpay auth principal and document ops
All checks were successful
build-and-deploy / build-deploy (push) Successful in 33s
All checks were successful
build-and-deploy / build-deploy (push) Successful in 33s
This commit is contained in:
@@ -185,3 +185,7 @@ Notes / constraints
|
|||||||
- Super admin can create properties and assign users to properties.
|
- Super admin can create properties and assign users to properties.
|
||||||
- Admin can assign ADMIN/MANAGER/STAFF/AGENT; Manager can assign STAFF/AGENT.
|
- Admin can assign ADMIN/MANAGER/STAFF/AGENT; Manager can assign STAFF/AGENT.
|
||||||
- Agents can only see free rooms.
|
- Agents can only see free rooms.
|
||||||
|
|
||||||
|
Operational notes
|
||||||
|
- Payment provider migrated: PayU removed; Razorpay now used for settings, QR, payment links, and webhooks.
|
||||||
|
- Server access: SSH host alias `hotel` is available for server operations (e.g., `ssh hotel`). Use carefully; DB changes were done via `sudo -u postgres psql` on the server when needed.
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.springframework.http.HttpHeaders
|
|||||||
import org.springframework.http.HttpMethod
|
import org.springframework.http.HttpMethod
|
||||||
import org.springframework.http.MediaType
|
import org.springframework.http.MediaType
|
||||||
import org.springframework.http.ResponseEntity
|
import org.springframework.http.ResponseEntity
|
||||||
|
import org.springframework.security.core.annotation.AuthenticationPrincipal
|
||||||
import org.springframework.web.bind.annotation.PathVariable
|
import org.springframework.web.bind.annotation.PathVariable
|
||||||
import org.springframework.web.bind.annotation.PostMapping
|
import org.springframework.web.bind.annotation.PostMapping
|
||||||
import org.springframework.web.bind.annotation.RequestBody
|
import org.springframework.web.bind.annotation.RequestBody
|
||||||
@@ -44,7 +45,7 @@ class RazorpayPaymentLinksController(
|
|||||||
@PathVariable propertyId: UUID,
|
@PathVariable propertyId: UUID,
|
||||||
@PathVariable bookingId: UUID,
|
@PathVariable bookingId: UUID,
|
||||||
@RequestBody request: RazorpayPaymentLinkCreateRequest,
|
@RequestBody request: RazorpayPaymentLinkCreateRequest,
|
||||||
principal: MyPrincipal?
|
@AuthenticationPrincipal principal: MyPrincipal?
|
||||||
): RazorpayPaymentLinkCreateResponse {
|
): RazorpayPaymentLinkCreateResponse {
|
||||||
requireRole(propertyAccess, propertyId, principal, Role.ADMIN, Role.MANAGER, Role.STAFF)
|
requireRole(propertyAccess, propertyId, principal, Role.ADMIN, Role.MANAGER, Role.STAFF)
|
||||||
val booking = bookingRepo.findById(bookingId).orElseThrow {
|
val booking = bookingRepo.findById(bookingId).orElseThrow {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.springframework.http.HttpHeaders
|
|||||||
import org.springframework.http.HttpMethod
|
import org.springframework.http.HttpMethod
|
||||||
import org.springframework.http.MediaType
|
import org.springframework.http.MediaType
|
||||||
import org.springframework.http.ResponseEntity
|
import org.springframework.http.ResponseEntity
|
||||||
|
import org.springframework.security.core.annotation.AuthenticationPrincipal
|
||||||
import org.springframework.web.bind.annotation.PathVariable
|
import org.springframework.web.bind.annotation.PathVariable
|
||||||
import org.springframework.web.bind.annotation.PostMapping
|
import org.springframework.web.bind.annotation.PostMapping
|
||||||
import org.springframework.web.bind.annotation.RequestBody
|
import org.springframework.web.bind.annotation.RequestBody
|
||||||
@@ -44,7 +45,7 @@ class RazorpayQrPayments(
|
|||||||
@PathVariable propertyId: UUID,
|
@PathVariable propertyId: UUID,
|
||||||
@PathVariable bookingId: UUID,
|
@PathVariable bookingId: UUID,
|
||||||
@RequestBody request: RazorpayQrGenerateRequest,
|
@RequestBody request: RazorpayQrGenerateRequest,
|
||||||
principal: MyPrincipal?
|
@AuthenticationPrincipal principal: MyPrincipal?
|
||||||
): RazorpayQrGenerateResponse {
|
): RazorpayQrGenerateResponse {
|
||||||
requireRole(propertyAccess, propertyId, principal, Role.ADMIN, Role.MANAGER, Role.STAFF)
|
requireRole(propertyAccess, propertyId, principal, Role.ADMIN, Role.MANAGER, Role.STAFF)
|
||||||
val booking = bookingRepo.findById(bookingId).orElseThrow {
|
val booking = bookingRepo.findById(bookingId).orElseThrow {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping
|
|||||||
import org.springframework.web.bind.annotation.RestController
|
import org.springframework.web.bind.annotation.RestController
|
||||||
import org.springframework.web.server.ResponseStatusException
|
import org.springframework.web.server.ResponseStatusException
|
||||||
import org.springframework.http.HttpStatus
|
import org.springframework.http.HttpStatus
|
||||||
|
import org.springframework.security.core.annotation.AuthenticationPrincipal
|
||||||
import java.time.OffsetDateTime
|
import java.time.OffsetDateTime
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
@@ -30,7 +31,7 @@ class RazorpaySettingsController(
|
|||||||
@GetMapping
|
@GetMapping
|
||||||
fun getSettings(
|
fun getSettings(
|
||||||
@PathVariable propertyId: UUID,
|
@PathVariable propertyId: UUID,
|
||||||
principal: MyPrincipal?
|
@AuthenticationPrincipal principal: MyPrincipal?
|
||||||
): RazorpaySettingsResponse {
|
): RazorpaySettingsResponse {
|
||||||
requireRole(propertyAccess, propertyId, principal, Role.ADMIN, Role.MANAGER)
|
requireRole(propertyAccess, propertyId, principal, Role.ADMIN, Role.MANAGER)
|
||||||
val settings = settingsRepo.findByPropertyId(propertyId)
|
val settings = settingsRepo.findByPropertyId(propertyId)
|
||||||
@@ -51,7 +52,7 @@ class RazorpaySettingsController(
|
|||||||
@PutMapping
|
@PutMapping
|
||||||
fun upsertSettings(
|
fun upsertSettings(
|
||||||
@PathVariable propertyId: UUID,
|
@PathVariable propertyId: UUID,
|
||||||
principal: MyPrincipal?,
|
@AuthenticationPrincipal principal: MyPrincipal?,
|
||||||
@RequestBody request: RazorpaySettingsUpsertRequest
|
@RequestBody request: RazorpaySettingsUpsertRequest
|
||||||
): RazorpaySettingsResponse {
|
): RazorpaySettingsResponse {
|
||||||
requireRole(propertyAccess, propertyId, principal, Role.ADMIN)
|
requireRole(propertyAccess, propertyId, principal, Role.ADMIN)
|
||||||
|
|||||||
Reference in New Issue
Block a user