|
|
|
|
package role
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/veypi/vbase/cfg"
|
|
|
|
|
"github.com/veypi/vbase/models"
|
|
|
|
|
"github.com/veypi/vigo"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type CreateReq 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
|
|
|
Scope string `json:"scope" src:"json" default:"vb" desc:"Scope"`
|
|
|
|
|
Code string `json:"code" src:"json" desc:"Role Code"`
|
|
|
|
|
Name string `json:"name" src:"json" desc:"Role Name"`
|
|
|
|
|
Description string `json:"description" src:"json" desc:"Role Description"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func create(x *vigo.X, req *CreateReq) (*models.Role, error) {
|
|
|
|
|
// Check if role code already exists
|
|
|
|
|
var count int64
|
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 := cfg.DB().Model(&models.Role{}).Where("code = ? AND scope = ?", req.Code, req.Scope).Count(&count).Error; err != nil {
|
|
|
|
|
return nil, vigo.ErrInternalServer.WithError(err)
|
|
|
|
|
}
|
|
|
|
|
if count > 0 {
|
|
|
|
|
return nil, vigo.ErrAlreadyExists.WithArgs("Role Code")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
role := &models.Role{
|
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
|
|
|
Scope: req.Scope,
|
|
|
|
|
Code: req.Code,
|
|
|
|
|
Name: req.Name,
|
|
|
|
|
Description: req.Description,
|
|
|
|
|
IsSystem: false, // Default to false for user created roles
|
|
|
|
|
Status: 1,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if err := cfg.DB().Create(role).Error; err != nil {
|
|
|
|
|
return nil, vigo.ErrDatabase.WithError(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return role, nil
|
|
|
|
|
}
|