|
|
|
|
package user
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/veypi/vbase/cfg"
|
|
|
|
|
"github.com/veypi/vbase/models"
|
|
|
|
|
"github.com/veypi/vigo"
|
|
|
|
|
"gorm.io/gorm"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// User specific permissions (data-level or direct assignment)
|
|
|
|
|
|
|
|
|
|
type GetPermissionsReq struct {
|
refactor: Remove multi-tenant org system and simplify auth
- Delete org API endpoints (add_member, create, del, get, list, member, patch, tree)
- Delete models/org.go and remove Org/OrgMember models
- Delete org-related test files (org_crud, org_load_middleware, org_permission, multi_tenant)
- Delete org test scripts (03_org_permission.sh, 04_org_load_middleware.sh)
- Simplify auth/auth.go by removing org context and role loading logic
- Remove org claims from JWT tokens and login/register responses
- Redesign Permission model with hierarchical level-based access control
- Add auth/design.md with new permission system specification
- Update user and role APIs to work without org context
5 days ago
|
|
|
UserID string `src:"path@user_id" desc:"User ID"`
|
|
|
|
|
Scope *string `json:"scope" src:"query" desc:"Scope"`
|
|
|
|
|
}
|
|
|
|
|
|
refactor: Remove multi-tenant org system and simplify auth
- Delete org API endpoints (add_member, create, del, get, list, member, patch, tree)
- Delete models/org.go and remove Org/OrgMember models
- Delete org-related test files (org_crud, org_load_middleware, org_permission, multi_tenant)
- Delete org test scripts (03_org_permission.sh, 04_org_load_middleware.sh)
- Simplify auth/auth.go by removing org context and role loading logic
- Remove org claims from JWT tokens and login/register responses
- Redesign Permission model with hierarchical level-based access control
- Add auth/design.md with new permission system specification
- Update user and role APIs to work without org context
5 days ago
|
|
|
func getPermissions(x *vigo.X, req *GetPermissionsReq) ([]models.Permission, error) {
|
|
|
|
|
var permissions []models.Permission
|
|
|
|
|
query := cfg.DB().Where("user_id = ?", req.UserID)
|
|
|
|
|
|
|
|
|
|
if req.Scope != nil {
|
|
|
|
|
query = query.Where("scope = ?", *req.Scope)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if err := query.Find(&permissions).Error; err != nil {
|
|
|
|
|
return nil, vigo.ErrDatabase.WithError(err)
|
|
|
|
|
}
|
refactor: Remove multi-tenant org system and simplify auth
- Delete org API endpoints (add_member, create, del, get, list, member, patch, tree)
- Delete models/org.go and remove Org/OrgMember models
- Delete org-related test files (org_crud, org_load_middleware, org_permission, multi_tenant)
- Delete org test scripts (03_org_permission.sh, 04_org_load_middleware.sh)
- Simplify auth/auth.go by removing org context and role loading logic
- Remove org claims from JWT tokens and login/register responses
- Redesign Permission model with hierarchical level-based access control
- Add auth/design.md with new permission system specification
- Update user and role APIs to work without org context
5 days ago
|
|
|
return permissions, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type UpdatePermissionsReq struct {
|
refactor: Remove multi-tenant org system and simplify auth
- Delete org API endpoints (add_member, create, del, get, list, member, patch, tree)
- Delete models/org.go and remove Org/OrgMember models
- Delete org-related test files (org_crud, org_load_middleware, org_permission, multi_tenant)
- Delete org test scripts (03_org_permission.sh, 04_org_load_middleware.sh)
- Simplify auth/auth.go by removing org context and role loading logic
- Remove org claims from JWT tokens and login/register responses
- Redesign Permission model with hierarchical level-based access control
- Add auth/design.md with new permission system specification
- Update user and role APIs to work without org context
5 days ago
|
|
|
UserID string `src:"path@user_id" desc:"User ID"`
|
|
|
|
|
PermissionIDs []string `json:"permission_ids" src:"json" desc:"List of Permission IDs"`
|
|
|
|
|
Scope string `json:"scope" src:"json" default:"default" desc:"Scope"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func updatePermissions(x *vigo.X, req *UpdatePermissionsReq) error {
|
|
|
|
|
var user models.User
|
|
|
|
|
if err := cfg.DB().First(&user, "id = ?", req.UserID).Error; err != nil {
|
|
|
|
|
return vigo.ErrNotFound
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return cfg.DB().Transaction(func(tx *gorm.DB) error {
|
refactor: Remove multi-tenant org system and simplify auth
- Delete org API endpoints (add_member, create, del, get, list, member, patch, tree)
- Delete models/org.go and remove Org/OrgMember models
- Delete org-related test files (org_crud, org_load_middleware, org_permission, multi_tenant)
- Delete org test scripts (03_org_permission.sh, 04_org_load_middleware.sh)
- Simplify auth/auth.go by removing org context and role loading logic
- Remove org claims from JWT tokens and login/register responses
- Redesign Permission model with hierarchical level-based access control
- Add auth/design.md with new permission system specification
- Update user and role APIs to work without org context
5 days ago
|
|
|
// Delete existing user-specific permissions for this scope
|
|
|
|
|
if err := tx.Where("user_id = ? AND scope = ?", req.UserID, req.Scope).Delete(&models.Permission{}).Error; err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
refactor: Remove multi-tenant org system and simplify auth
- Delete org API endpoints (add_member, create, del, get, list, member, patch, tree)
- Delete models/org.go and remove Org/OrgMember models
- Delete org-related test files (org_crud, org_load_middleware, org_permission, multi_tenant)
- Delete org test scripts (03_org_permission.sh, 04_org_load_middleware.sh)
- Simplify auth/auth.go by removing org context and role loading logic
- Remove org claims from JWT tokens and login/register responses
- Redesign Permission model with hierarchical level-based access control
- Add auth/design.md with new permission system specification
- Update user and role APIs to work without org context
5 days ago
|
|
|
// Add new permissions
|
|
|
|
|
if len(req.PermissionIDs) > 0 {
|
|
|
|
|
permissions := make([]models.Permission, 0, len(req.PermissionIDs))
|
|
|
|
|
for _, pid := range req.PermissionIDs {
|
|
|
|
|
permissions = append(permissions, models.Permission{
|
|
|
|
|
Scope: req.Scope,
|
|
|
|
|
UserID: &req.UserID,
|
|
|
|
|
PermissionID: pid,
|
|
|
|
|
Level: 7, // Default to Admin level
|
|
|
|
|
})
|
|
|
|
|
}
|
refactor: Remove multi-tenant org system and simplify auth
- Delete org API endpoints (add_member, create, del, get, list, member, patch, tree)
- Delete models/org.go and remove Org/OrgMember models
- Delete org-related test files (org_crud, org_load_middleware, org_permission, multi_tenant)
- Delete org test scripts (03_org_permission.sh, 04_org_load_middleware.sh)
- Simplify auth/auth.go by removing org context and role loading logic
- Remove org claims from JWT tokens and login/register responses
- Redesign Permission model with hierarchical level-based access control
- Add auth/design.md with new permission system specification
- Update user and role APIs to work without org context
5 days ago
|
|
|
if err := tx.Create(&permissions).Error; err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
})
|
|
|
|
|
}
|