Skip to content

Commit

Permalink
updated oauth endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
BK1031 committed Aug 30, 2024
1 parent 87ac113 commit 88c335f
Showing 1 changed file with 34 additions and 14 deletions.
48 changes: 34 additions & 14 deletions controller/oauth_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,26 @@ func GetValidOauthScopes(c *gin.Context) {
}

func GetAllClientApplications(c *gin.Context) {
RequireAny(c, RequestTokenHasScope(c, "sentinel:all"))
Require(c, Any(
RequestTokenHasScope(c, "sentinel:all"),
All(
RequestTokenHasScope(c, "applications:read"),
RequestUserHasRole(c, "d_admin"),
),
))

apps := service.GetAllClientApplications()
c.JSON(http.StatusOK, apps)
}

func GetClientApplicationsForUser(c *gin.Context) {
RequireAny(c, RequestTokenHasScope(c, "sentinel:all"), RequestTokenHasScope(c, "applications:read"))
RequireAny(c, RequestUserHasID(c, c.Param("userID")), RequestUserHasRole(c, "d_admin"))
Require(c, Any(
RequestTokenHasScope(c, "sentinel:all"),
All(
RequestTokenHasScope(c, "applications:read"),
Any(RequestUserHasID(c, c.Param("userID")), RequestUserHasRole(c, "d_admin")),
),
))

userID := c.Param("userID")
apps := service.GetClientApplicationsForUser(userID)
Expand All @@ -39,29 +50,36 @@ func GetClientApplicationByID(c *gin.Context) {
return
}

if !RequestTokenHasScope(c, "sentinel:all") {
RequireAny(c, RequestTokenHasScope(c, "applications:read"))
RequireAny(c, RequestUserHasRole(c, "d_admin"), RequestUserHasID(c, app.UserID))
}
Require(c, Any(
RequestTokenHasScope(c, "sentinel:all"),
All(
RequestTokenHasScope(c, "applications:read"),
Any(RequestUserHasID(c, app.UserID), RequestUserHasRole(c, "d_admin")),
),
))

c.JSON(http.StatusOK, app)
}

func CreateClientApplication(c *gin.Context) {
RequireAny(c, RequestTokenHasScope(c, "sentinel:all"))
Require(c, RequestTokenHasScope(c, "sentinel:all"))

var app model.ClientApplication
if err := c.ShouldBindJSON(&app); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"message": err.Error()})
return
}

if app.ID != "" {
existing := service.GetClientApplicationByID(app.ID)
RequireAny(c, RequestUserHasID(c, existing.UserID), RequestUserHasRole(c, "d_admin"))
Require(c, Any(
RequestUserHasID(c, existing.UserID),
RequestUserHasRole(c, "d_admin"),
))
} else {
app.UserID = GetRequestUserID(c)
}

app.UserID = GetRequestUserID(c)

created, err := service.CreateClientApplication(app)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"message": err.Error()})
Expand All @@ -78,8 +96,10 @@ func DeleteClientApplication(c *gin.Context) {
return
}

RequireAny(c, RequestTokenHasScope(c, "sentinel:all"))
RequireAny(c, RequestUserHasRole(c, "d_admin"), RequestUserHasID(c, app.UserID))
Require(c, All(
RequestTokenHasScope(c, "sentinel:all"),
Any(RequestUserHasID(c, app.UserID), RequestUserHasRole(c, "d_admin")),
))

err := service.DeleteClientApplication(appID)
if err != nil {
Expand All @@ -90,7 +110,7 @@ func DeleteClientApplication(c *gin.Context) {
}

func OauthAuthorize(c *gin.Context) {
RequireAny(c, RequestTokenHasScope(c, "sentinel:all"))
Require(c, RequestTokenHasScope(c, "sentinel:all"))

clientID := c.Query("client_id")
if clientID == "" {
Expand Down

0 comments on commit 88c335f

Please sign in to comment.