64 lines
1.2 KiB
Go
64 lines
1.2 KiB
Go
package routes
|
|
|
|
import (
|
|
"bssapp-backend/auth"
|
|
"database/sql"
|
|
"encoding/json"
|
|
"net/http"
|
|
)
|
|
|
|
func DebugPermissionV2(db *sql.DB) http.HandlerFunc {
|
|
return func(w http.ResponseWriter, r *http.Request) {
|
|
|
|
// sadece auth kontrolü
|
|
claims, ok := auth.GetClaimsFromContext(r.Context())
|
|
if !ok || claims == nil {
|
|
http.Error(w, "unauthorized", 401)
|
|
return
|
|
}
|
|
|
|
module := r.URL.Query().Get("module")
|
|
action := r.URL.Query().Get("action")
|
|
|
|
if module == "" || action == "" {
|
|
http.Error(w, "module & action required", 400)
|
|
return
|
|
}
|
|
|
|
rows, err := db.Query(`
|
|
SELECT
|
|
r.id,
|
|
r.code,
|
|
rp.allowed
|
|
FROM dfrole r
|
|
LEFT JOIN mk_sys_role_permissions rp
|
|
ON rp.role_id = r.id
|
|
AND rp.module_code = $1
|
|
AND rp.action = $2
|
|
ORDER BY r.id
|
|
`, module, action)
|
|
|
|
if err != nil {
|
|
http.Error(w, "db error", 500)
|
|
return
|
|
}
|
|
defer rows.Close()
|
|
|
|
type Row struct {
|
|
RoleID int `json:"role_id"`
|
|
Code string `json:"code"`
|
|
Allowed bool `json:"allowed"`
|
|
}
|
|
|
|
var list []Row
|
|
|
|
for rows.Next() {
|
|
var r Row
|
|
_ = rows.Scan(&r.RoleID, &r.Code, &r.Allowed)
|
|
list = append(list, r)
|
|
}
|
|
|
|
json.NewEncoder(w).Encode(list)
|
|
}
|
|
}
|