mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-24 15:25:43 +00:00
Feat(BE-304): add permission in report and closing
This commit is contained in:
@@ -1,44 +0,0 @@
|
|||||||
package capabilities
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
permission "gitlab.com/mbugroup/lti-api.git/internal/middleware"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FromPermissions returns a filtered map of capabilities that the frontend can use
|
|
||||||
// to toggle features. Only permissions recognized by the application are exposed.
|
|
||||||
func FromPermissions(perms []string) map[string]bool {
|
|
||||||
if len(perms) == 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
out := make(map[string]bool)
|
|
||||||
for _, perm := range perms {
|
|
||||||
if key, ok := normalizeAndAllow(perm); ok {
|
|
||||||
out[key] = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if len(out) == 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
func normalizeAndAllow(perm string) (string, bool) {
|
|
||||||
perm = strings.ToLower(strings.TrimSpace(perm))
|
|
||||||
if perm == "" {
|
|
||||||
return "", false
|
|
||||||
}
|
|
||||||
if _, ok := allowed[perm]; !ok {
|
|
||||||
return "", false
|
|
||||||
}
|
|
||||||
return perm, true
|
|
||||||
}
|
|
||||||
|
|
||||||
var allowed = map[string]struct{}{
|
|
||||||
permission.PermissionRecordingRead: {},
|
|
||||||
permission.PermissionRecordingCreate: {},
|
|
||||||
permission.PermissionRecordingUpdate: {},
|
|
||||||
permission.PermissionRecordingDelete: {},
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package middleware
|
package middleware
|
||||||
|
|
||||||
//project-flock
|
// project-flock
|
||||||
const (
|
const (
|
||||||
P_ProjectFlockKandangsClosing = "lti.production.project_flock_kandangs.closing"
|
P_ProjectFlockKandangsClosing = "lti.production.project_flock_kandangs.closing"
|
||||||
P_ProjectFlockKandangsGetAll = "lti.production.project_flock_kandangs.list"
|
P_ProjectFlockKandangsGetAll = "lti.production.project_flock_kandangs.list"
|
||||||
@@ -17,46 +17,61 @@ const (
|
|||||||
P_ProjectFlockResubmit = "lti.production.project_flocks.resubmit"
|
P_ProjectFlockResubmit = "lti.production.project_flocks.resubmit"
|
||||||
)
|
)
|
||||||
|
|
||||||
const(
|
const (
|
||||||
P_ExpenseGetAll= "lti.expense.list"
|
P_ExpenseGetAll = "lti.expense.list"
|
||||||
P_ExpenseCreateOne= "lti.expense.create"
|
P_ExpenseCreateOne = "lti.expense.create"
|
||||||
P_ExpenseUpdateOne= "lti.expense.update"
|
P_ExpenseUpdateOne = "lti.expense.update"
|
||||||
P_ExpenseGetOne= "lti.expense.detail"
|
P_ExpenseGetOne = "lti.expense.detail"
|
||||||
P_ExpenseDeleteOne= "lti.expense.delete"
|
P_ExpenseDeleteOne = "lti.expense.delete"
|
||||||
P_ExpenseApprovalManager= "lti.expense.approve.manager"
|
P_ExpenseApprovalManager = "lti.expense.approve.manager"
|
||||||
P_ExpenseApprovalFinance= "lti.expense.approve.finance"
|
P_ExpenseApprovalFinance = "lti.expense.approve.finance"
|
||||||
P_ExpenseCreateRealizations= "lti.expense.create.realization"
|
P_ExpenseCreateRealizations = "lti.expense.create.realization"
|
||||||
P_ExpenseUpdateRealizations= "lti.expense.update.realization"
|
P_ExpenseUpdateRealizations = "lti.expense.update.realization"
|
||||||
P_ExpenseCompleteExpense= "lti.expense.complete.expense"
|
P_ExpenseCompleteExpense = "lti.expense.complete.expense"
|
||||||
P_ExpenseDocument= "lti.expense.document"
|
P_ExpenseDocument = "lti.expense.document"
|
||||||
P_ExpenseDocumentRealizations= "lti.expense.document.realization"
|
P_ExpenseDocumentRealizations = "lti.expense.document.realization"
|
||||||
)
|
)
|
||||||
const(
|
const (
|
||||||
P_AdjustmentGetAll="lti.inventory.list"
|
P_AdjustmentGetAll = "lti.inventory.list"
|
||||||
P_AdjustmentCreate="lti.inventory.create"
|
P_AdjustmentCreate = "lti.inventory.create"
|
||||||
P_AdjustmentGetOne="lti.inventory.detail"
|
P_AdjustmentGetOne = "lti.inventory.detail"
|
||||||
)
|
)
|
||||||
const(
|
const (
|
||||||
P_ApprovalGetAll = "lti.approval.list"
|
P_ApprovalGetAll = "lti.approval.list"
|
||||||
)
|
)
|
||||||
|
const (
|
||||||
|
P_ReportExpenseGetAll = "lti.repport.expense.list"
|
||||||
|
P_ReportDeliveryGetAll = "lti.repport.delivery.list"
|
||||||
|
)
|
||||||
|
|
||||||
const(
|
|
||||||
P_ClosingGetAll = "lti.closing.list"
|
const (
|
||||||
P_ClosingPenjualan = "lti.closing.penjualan"
|
|
||||||
P_ClosingGetSummary = "lti.closing.getsummary"
|
|
||||||
P_ProductStockGetAll = "lti.inventory.product_stock.list"
|
P_ProductStockGetAll = "lti.inventory.product_stock.list"
|
||||||
P_ProductStockGetOne = "lti.inventory.product_stock.detail"
|
P_ProductStockGetOne = "lti.inventory.product_stock.detail"
|
||||||
P_ProductWarehousekGetAll = "lti.inventory.product_warehouses.list"
|
P_ProductWarehousekGetAll = "lti.inventory.product_warehouses.list"
|
||||||
P_ProductWarehouseGetOne = "lti.inventory.product_warehouses.detail"
|
P_ProductWarehouseGetOne = "lti.inventory.product_warehouses.detail"
|
||||||
)
|
)
|
||||||
|
const (
|
||||||
|
P_ClosingGetAll = "lti.closing.list"
|
||||||
|
P_ClosingPenjualan = "lti.closing.penjualan"
|
||||||
|
P_ClosingGetSummary = "lti.closing.getsummary"
|
||||||
|
|
||||||
const(
|
|
||||||
|
//?baru
|
||||||
|
P_ClosingGetOverhead = "lti.closing.getoverhead"
|
||||||
|
P_ClosingCountSapronakKandang = "lti.closing.getsapronakcountbykandang"
|
||||||
|
P_ClosingCountSapronak = "lti.closing.getsapronakcount"
|
||||||
|
P_ClosingSapronak = "lti.closing.getsapronak"
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
P_TransferGetAll = "lti.inventory.transfer.list"
|
P_TransferGetAll = "lti.inventory.transfer.list"
|
||||||
P_TransferGetOne = "lti.inventory.transfer.detail"
|
P_TransferGetOne = "lti.inventory.transfer.detail"
|
||||||
P_TransferCreateOne = "lti.inventory.transfer.create"
|
P_TransferCreateOne = "lti.inventory.transfer.create"
|
||||||
)
|
)
|
||||||
|
|
||||||
const(
|
const (
|
||||||
P_DeliveryGetAll = "lti.marketing.delivery_order.list"
|
P_DeliveryGetAll = "lti.marketing.delivery_order.list"
|
||||||
P_DeliveryGetOne = "lti.marketing.delivery_order.detail"
|
P_DeliveryGetOne = "lti.marketing.delivery_order.detail"
|
||||||
P_DeliveryCreateOne = "lti.marketing.delivery_order.create"
|
P_DeliveryCreateOne = "lti.marketing.delivery_order.create"
|
||||||
@@ -67,7 +82,7 @@ const(
|
|||||||
P_SalesOrderUpdateOne = "lti.marketing.sales_order.update"
|
P_SalesOrderUpdateOne = "lti.marketing.sales_order.update"
|
||||||
)
|
)
|
||||||
|
|
||||||
const(
|
const (
|
||||||
P_AreaGetAll = "lti.master.area.list"
|
P_AreaGetAll = "lti.master.area.list"
|
||||||
P_AreaGetOne = "lti.master.area.detail"
|
P_AreaGetOne = "lti.master.area.detail"
|
||||||
P_AreaCreateOne = "lti.master.area.create"
|
P_AreaCreateOne = "lti.master.area.create"
|
||||||
@@ -145,16 +160,15 @@ const(
|
|||||||
P_WarehousesCreateOne = "lti.master.warehouses.create"
|
P_WarehousesCreateOne = "lti.master.warehouses.create"
|
||||||
P_WarehousesUpdateOne = "lti.master.warehouses.update"
|
P_WarehousesUpdateOne = "lti.master.warehouses.update"
|
||||||
P_WarehousesDeleteOne = "lti.master.warehouses.delete"
|
P_WarehousesDeleteOne = "lti.master.warehouses.delete"
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
const(
|
|
||||||
P_ChickinsCreateOne = "lti.production.chickins.create"
|
P_ChickinsCreateOne = "lti.production.chickins.create"
|
||||||
P_ChickinsGetOne = "lti.production.chickins.detail"
|
P_ChickinsGetOne = "lti.production.chickins.detail"
|
||||||
P_ChickinsApproval = "lti.production.chickins.approve"
|
P_ChickinsApproval = "lti.production.chickins.approve"
|
||||||
)
|
)
|
||||||
//recording
|
|
||||||
|
// recording
|
||||||
const (
|
const (
|
||||||
P_RecordingGetAll = "lti.production.recording.list"
|
P_RecordingGetAll = "lti.production.recording.list"
|
||||||
P_RecordingGetOne = "lti.production.recording.detail"
|
P_RecordingGetOne = "lti.production.recording.detail"
|
||||||
@@ -177,7 +191,7 @@ const (
|
|||||||
P_PurchaseApprovalManager = "lti.Purchase.approve.manager"
|
P_PurchaseApprovalManager = "lti.Purchase.approve.manager"
|
||||||
)
|
)
|
||||||
|
|
||||||
const(
|
const (
|
||||||
P_UserGetAll = "lti.users.list"
|
P_UserGetAll = "lti.users.list"
|
||||||
P_UserGetOne = "lti.users.detail"
|
P_UserGetOne = "lti.users.detail"
|
||||||
)
|
)
|
||||||
@@ -24,11 +24,8 @@ func ClosingRoutes(v1 fiber.Router, u user.UserService, s closing.ClosingService
|
|||||||
route.Get("/",m.RequirePermissions(m.P_ClosingGetAll), ctrl.GetAll)
|
route.Get("/",m.RequirePermissions(m.P_ClosingGetAll), ctrl.GetAll)
|
||||||
route.Get("/:project_flock_id/penjualan",m.RequirePermissions(m.P_ClosingPenjualan), ctrl.GetPenjualan)
|
route.Get("/:project_flock_id/penjualan",m.RequirePermissions(m.P_ClosingPenjualan), ctrl.GetPenjualan)
|
||||||
route.Get("/:projectFlockId",m.RequirePermissions(m.P_ClosingGetSummary), ctrl.GetClosingSummary)
|
route.Get("/:projectFlockId",m.RequirePermissions(m.P_ClosingGetSummary), ctrl.GetClosingSummary)
|
||||||
route.Get("/", ctrl.GetAll)
|
route.Get("/:project_flock_id/overhead",m.RequirePermissions(m.P_ClosingGetOverhead), ctrl.GetOverhead)
|
||||||
route.Get("/:project_flock_id/penjualan", ctrl.GetPenjualan)
|
route.Get("/:project_flock_id/:project_flock_kandang_id/perhitungan_sapronak",m.RequirePermissions(m.P_ClosingCountSapronakKandang) ,ctrl.GetSapronakByKandang)
|
||||||
route.Get("/:project_flock_id/overhead", ctrl.GetOverhead)
|
route.Get("/:project_flock_id/perhitungan_sapronak",m.RequirePermissions(m.P_ClosingCountSapronak) ,ctrl.GetSapronakByProject)
|
||||||
route.Get("/:project_flock_id/:project_flock_kandang_id/perhitungan_sapronak", ctrl.GetSapronakByKandang)
|
route.Get("/:projectFlockId/sapronak",m.RequirePermissions(m.P_ClosingSapronak), ctrl.GetClosingSapronak)
|
||||||
route.Get("/:project_flock_id/perhitungan_sapronak", ctrl.GetSapronakByProject)
|
|
||||||
route.Get("/:projectFlockId", ctrl.GetClosingSummary)
|
|
||||||
route.Get("/:projectFlockId/sapronak", ctrl.GetClosingSapronak)
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ import (
|
|||||||
|
|
||||||
expenseRepo "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/repositories"
|
expenseRepo "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/repositories"
|
||||||
marketingRepo "gitlab.com/mbugroup/lti-api.git/internal/modules/marketing/repositories"
|
marketingRepo "gitlab.com/mbugroup/lti-api.git/internal/modules/marketing/repositories"
|
||||||
|
|
||||||
|
rUser "gitlab.com/mbugroup/lti-api.git/internal/modules/users/repositories"
|
||||||
|
sUser "gitlab.com/mbugroup/lti-api.git/internal/modules/users/services"
|
||||||
)
|
)
|
||||||
|
|
||||||
type RepportModule struct{}
|
type RepportModule struct{}
|
||||||
@@ -20,9 +23,11 @@ func (RepportModule) RegisterRoutes(router fiber.Router, db *gorm.DB, validate *
|
|||||||
expenseRealizationRepository := expenseRepo.NewExpenseRealizationRepository(db)
|
expenseRealizationRepository := expenseRepo.NewExpenseRealizationRepository(db)
|
||||||
marketingDeliveryProductRepository := marketingRepo.NewMarketingDeliveryProductRepository(db)
|
marketingDeliveryProductRepository := marketingRepo.NewMarketingDeliveryProductRepository(db)
|
||||||
approvalRepository := commonRepo.NewApprovalRepository(db)
|
approvalRepository := commonRepo.NewApprovalRepository(db)
|
||||||
|
userRepository := rUser.NewUserRepository(db)
|
||||||
|
|
||||||
approvalSvc := approvalService.NewApprovalService(approvalRepository)
|
approvalSvc := approvalService.NewApprovalService(approvalRepository)
|
||||||
repportService := sRepport.NewRepportService(validate, expenseRealizationRepository, marketingDeliveryProductRepository, approvalSvc)
|
repportService := sRepport.NewRepportService(validate, expenseRealizationRepository, marketingDeliveryProductRepository, approvalSvc)
|
||||||
|
userService := sUser.NewUserService(userRepository, validate)
|
||||||
|
|
||||||
RepportRoutes(router, repportService)
|
RepportRoutes(router, userService, repportService)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,20 @@
|
|||||||
package repports
|
package repports
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
m "gitlab.com/mbugroup/lti-api.git/internal/middleware"
|
||||||
controller "gitlab.com/mbugroup/lti-api.git/internal/modules/repports/controllers"
|
controller "gitlab.com/mbugroup/lti-api.git/internal/modules/repports/controllers"
|
||||||
repport "gitlab.com/mbugroup/lti-api.git/internal/modules/repports/services"
|
repport "gitlab.com/mbugroup/lti-api.git/internal/modules/repports/services"
|
||||||
|
user "gitlab.com/mbugroup/lti-api.git/internal/modules/users/services"
|
||||||
|
|
||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func RepportRoutes(v1 fiber.Router, s repport.RepportService) {
|
func RepportRoutes(v1 fiber.Router, u user.UserService, s repport.RepportService) {
|
||||||
ctrl := controller.NewRepportController(s)
|
ctrl := controller.NewRepportController(s)
|
||||||
|
|
||||||
route := v1.Group("/reports")
|
route := v1.Group("/reports")
|
||||||
|
route.Use(m.Auth(u))
|
||||||
|
|
||||||
route.Get("/expense", ctrl.GetExpense)
|
route.Get("/expense", m.RequirePermissions(m.P_ReportExpenseGetAll), ctrl.GetExpense)
|
||||||
route.Get("/marketing", ctrl.GetMarketing)
|
route.Get("/marketing", m.RequirePermissions(m.P_ReportDeliveryGetAll), ctrl.GetMarketing)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user