Skip to content

Commit d9d1761

Browse files
Merge pull request #29 from Killerrekt/master
2 parents abf37ab + b7da847 commit d9d1761

File tree

4 files changed

+29
-6
lines changed

4 files changed

+29
-6
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ require (
1414
golang.org/x/oauth2 v0.15.0
1515
golang.org/x/text v0.14.0
1616
google.golang.org/api v0.153.0
17+
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
1718
)
1819

1920
require (
@@ -51,5 +52,4 @@ require (
5152
google.golang.org/grpc v1.59.0 // indirect
5253
google.golang.org/protobuf v1.31.0 // indirect
5354
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
54-
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df // indirect
5555
)

internal/middleware/check_user.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/redis/go-redis/v9"
1212

1313
"github.com/CodeChefVIT/devsoc-backend-24/internal/database"
14+
"github.com/CodeChefVIT/devsoc-backend-24/internal/models"
1415
services "github.com/CodeChefVIT/devsoc-backend-24/internal/services/user"
1516
)
1617

@@ -77,6 +78,13 @@ func AuthUser(next echo.HandlerFunc) echo.HandlerFunc {
7778
}
7879
}
7980

81+
if user.IsBanned {
82+
return c.JSON(http.StatusFailedDependency, map[string]string{
83+
"message": "user is banned",
84+
"status": "fail",
85+
})
86+
}
87+
8088
if !user.IsVerified {
8189
return c.JSON(http.StatusForbidden, map[string]string{
8290
"message": "not verified",
@@ -96,3 +104,16 @@ func AuthUser(next echo.HandlerFunc) echo.HandlerFunc {
96104
return next(c)
97105
}
98106
}
107+
108+
func CheckAdmin(next echo.HandlerFunc) echo.HandlerFunc {
109+
return func(c echo.Context) error {
110+
user := c.Get("user").(*models.User)
111+
if user.Role != "admin" {
112+
return c.JSON(http.StatusUnauthorized, map[string]string{
113+
"message": "the user is not an admin",
114+
"status": "fail",
115+
})
116+
}
117+
return next(c)
118+
}
119+
}

internal/routes/admin_routes.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@ package routes
22

33
import (
44
"github.com/CodeChefVIT/devsoc-backend-24/internal/controllers"
5+
"github.com/CodeChefVIT/devsoc-backend-24/internal/middleware"
56
"github.com/labstack/echo/v4"
67
)
78

89
func AdminRoutes(incomingRoutes *echo.Echo) {
910
admin := incomingRoutes.Group("/admin")
10-
// admin.Use(middleware.Protected())
11-
// admin.Use(middleware.AuthUser)
11+
admin.Use(middleware.Protected())
12+
admin.Use(middleware.AuthUser)
13+
admin.Use(middleware.CheckAdmin)
1214

1315
admin.GET("/team/all", controllers.GetTeams)
1416
admin.GET("/team/:id", controllers.GetTeamsByID)

internal/services/team/get_team.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ func GetAllTeams() ([]models.GetTeam, error) {
1414
var teams []models.GetTeam
1515

1616
query := `SELECT teams.name,teams.code, teams.leader_id, teams.round ,
17-
users.first_name, users.last_name, users.email, users.reg_no,
17+
users.first_name, users.last_name, users.id, users.reg_no,
1818
ideas.title, ideas.description, ideas.track, ideas.github, ideas.figma, ideas.others ,
1919
projects.name, projects.description, projects.github, projects.figma, projects.track, projects.others
2020
FROM teams
2121
INNER JOIN users ON users.team_id = teams.id
22-
LEFT JOIN projects ON teams.projectid = projects.id
23-
LEFT JOIN ideas ON teams.ideaid = ideas.id`
22+
LEFT JOIN projects ON teams.id = projects.teamid
23+
LEFT JOIN ideas ON teams.id = ideas.teamid`
2424

2525
rows, err := database.DB.Query(query)
2626
if err != nil {

0 commit comments

Comments
 (0)