package permissions /* ===================================================== ROLE PERMISSION MATRIX (READ) - Role bazlı matrix ekranı için: role_id + role_code + module/action/allowed - UI isterse "source" alanı ile satırın nereden geldiğini gösterebilir. ===================================================== */ type PermissionMatrixRow struct { // Role tarafı RoleID int `json:"role_id,omitempty"` RoleCode string `json:"role_code,omitempty"` // User override tarafı UserID int64 `json:"user_id,omitempty"` // Ortak alanlar Module string `json:"module"` ModuleCode string `json:"module_code"` Action string `json:"action"` Allowed bool `json:"allowed"` // role | user Source string `json:"source"` } /* ===================================================== ROLE PERMISSION UPDATE (WRITE) - /api/permissions/matrix POST gibi update endpoint'lerinde kullanılır ===================================================== */ type PermissionUpdateRequest struct { RoleID int `json:"role_id"` Module string `json:"module"` Action string `json:"action"` Allowed bool `json:"allowed"` } /* ===================================================== USER OVERRIDE MODELS - mk_sys_user_permissions tablosu için ===================================================== */ // DB’den okurken döndüğümüz satır (GET /api/users/{id}/permissions) type UserOverrideRow struct { Module string `json:"module"` Action string `json:"action"` Allowed bool `json:"allowed"` } // Middleware içinde hızlı okuma için de kullanılabilir (GetUserOverrides) type UserPermissionOverride struct { Module string `json:"module"` Action string `json:"action"` Allowed bool `json:"allowed"` } // Repo “upsert/insert” gibi operasyonlarda kullanılacak internal model type UserPermission struct { UserID int64 `json:"user_id"` Module string `json:"module"` Action string `json:"action"` Allowed bool `json:"allowed"` } // POST payload için tip (SaveUserOverrides input) type UserPermissionRequest struct { Module string `json:"module"` Action string `json:"action"` Allowed bool `json:"allowed"` } // Role + Department Permission Row type RoleDepartmentPermission struct { RoleID int `json:"role_id"` DepartmentCode string `json:"department_code"` Module string `json:"module"` Action string `json:"action"` Allowed bool `json:"allowed"` Source string `json:"source"` // "role_dept" }