refactor(main): rename UCAN to Delegation in main.go
This commit is contained in:
81
main.go
81
main.go
@@ -362,7 +362,7 @@ func validateUCAN(token string, params *types.FilterParams) error {
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
if cid, ok := claims["cid"].(string); ok {
|
if cid, ok := claims["cid"].(string); ok {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
revoked, err := am.IsUCANRevoked(ctx, cid)
|
revoked, err := am.IsDelegationRevoked(ctx, cid)
|
||||||
if err == nil && revoked {
|
if err == nil && revoked {
|
||||||
return errors.New("token has been revoked")
|
return errors.New("token has been revoked")
|
||||||
}
|
}
|
||||||
@@ -675,40 +675,44 @@ func executeUCANAction(params *types.FilterParams) (json.RawMessage, error) {
|
|||||||
|
|
||||||
switch params.Action {
|
switch params.Action {
|
||||||
case "list":
|
case "list":
|
||||||
ucans, err := am.ListUCANs(ctx)
|
delegations, err := am.ListDelegations(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("list ucans: %w", err)
|
return nil, fmt.Errorf("list delegations: %w", err)
|
||||||
}
|
}
|
||||||
return json.Marshal(ucans)
|
return json.Marshal(delegations)
|
||||||
case "get":
|
case "get":
|
||||||
if params.Subject == "" {
|
if params.Subject == "" {
|
||||||
return nil, errors.New("subject (cid) required for get action")
|
return nil, errors.New("subject (cid) required for get action")
|
||||||
}
|
}
|
||||||
ucan, err := am.GetUCANByCID(ctx, params.Subject)
|
delegation, err := am.GetDelegationByCID(ctx, params.Subject)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("get ucan: %w", err)
|
return nil, fmt.Errorf("get delegation: %w", err)
|
||||||
}
|
}
|
||||||
return json.Marshal(ucan)
|
return json.Marshal(delegation)
|
||||||
case "revoke":
|
case "revoke":
|
||||||
if params.Subject == "" {
|
if params.Subject == "" {
|
||||||
return nil, errors.New("subject (cid) required for revoke action")
|
return nil, errors.New("subject (cid) required for revoke action")
|
||||||
}
|
}
|
||||||
if err := am.RevokeUCAN(ctx, params.Subject); err != nil {
|
if err := am.RevokeDelegation(ctx, keybase.RevokeDelegationParams{
|
||||||
return nil, fmt.Errorf("revoke ucan: %w", err)
|
DelegationCID: params.Subject,
|
||||||
|
RevokedBy: state.GetDID(),
|
||||||
|
Reason: "user revoked",
|
||||||
|
}); err != nil {
|
||||||
|
return nil, fmt.Errorf("revoke delegation: %w", err)
|
||||||
}
|
}
|
||||||
return json.Marshal(map[string]bool{"revoked": true})
|
return json.Marshal(map[string]bool{"revoked": true})
|
||||||
case "verify":
|
case "verify":
|
||||||
if params.Subject == "" {
|
if params.Subject == "" {
|
||||||
return nil, errors.New("subject (cid) required for verify action")
|
return nil, errors.New("subject (cid) required for verify action")
|
||||||
}
|
}
|
||||||
revoked, err := am.IsUCANRevoked(ctx, params.Subject)
|
revoked, err := am.IsDelegationRevoked(ctx, params.Subject)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("check ucan: %w", err)
|
return nil, fmt.Errorf("check delegation: %w", err)
|
||||||
}
|
}
|
||||||
return json.Marshal(map[string]bool{"valid": !revoked, "revoked": revoked})
|
return json.Marshal(map[string]bool{"valid": !revoked, "revoked": revoked})
|
||||||
case "cleanup":
|
case "cleanup":
|
||||||
if err := am.CleanExpiredUCANs(ctx); err != nil {
|
if err := am.CleanExpiredDelegations(ctx); err != nil {
|
||||||
return nil, fmt.Errorf("cleanup ucans: %w", err)
|
return nil, fmt.Errorf("cleanup delegations: %w", err)
|
||||||
}
|
}
|
||||||
return json.Marshal(map[string]bool{"cleaned": true})
|
return json.Marshal(map[string]bool{"cleaned": true})
|
||||||
default:
|
default:
|
||||||
@@ -727,56 +731,61 @@ func executeDelegationAction(params *types.FilterParams) (json.RawMessage, error
|
|||||||
switch params.Action {
|
switch params.Action {
|
||||||
case "list":
|
case "list":
|
||||||
if params.Subject == "" {
|
if params.Subject == "" {
|
||||||
return nil, errors.New("subject (delegator or delegate DID) required for list action")
|
return nil, errors.New("subject (issuer DID) required for list action")
|
||||||
}
|
}
|
||||||
delegations, err := am.ListDelegationsByDelegator(ctx, params.Subject)
|
delegations, err := am.ListDelegationsByIssuer(ctx, params.Subject)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("list delegations: %w", err)
|
return nil, fmt.Errorf("list delegations: %w", err)
|
||||||
}
|
}
|
||||||
return json.Marshal(delegations)
|
return json.Marshal(delegations)
|
||||||
case "list_received":
|
case "list_received":
|
||||||
if params.Subject == "" {
|
if params.Subject == "" {
|
||||||
return nil, errors.New("subject (delegate DID) required for list_received action")
|
return nil, errors.New("subject (audience DID) required for list_received action")
|
||||||
}
|
}
|
||||||
delegations, err := am.ListDelegationsByDelegate(ctx, params.Subject)
|
delegations, err := am.ListDelegationsByAudience(ctx, params.Subject)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("list received delegations: %w", err)
|
return nil, fmt.Errorf("list received delegations: %w", err)
|
||||||
}
|
}
|
||||||
return json.Marshal(delegations)
|
return json.Marshal(delegations)
|
||||||
case "list_resource":
|
case "list_command":
|
||||||
if params.Subject == "" {
|
if params.Subject == "" {
|
||||||
return nil, errors.New("subject (resource) required for list_resource action")
|
return nil, errors.New("subject (command) required for list_command action")
|
||||||
}
|
}
|
||||||
delegations, err := am.ListDelegationsForResource(ctx, params.Subject)
|
delegations, err := am.ListDelegationsForCommand(ctx, params.Subject)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("list delegations for resource: %w", err)
|
return nil, fmt.Errorf("list delegations for command: %w", err)
|
||||||
}
|
}
|
||||||
return json.Marshal(delegations)
|
return json.Marshal(delegations)
|
||||||
case "chain":
|
case "get":
|
||||||
if params.Subject == "" {
|
if params.Subject == "" {
|
||||||
return nil, errors.New("subject (delegation_id) required for chain action")
|
return nil, errors.New("subject (cid) required for get action")
|
||||||
}
|
}
|
||||||
var delegationID int64
|
delegation, err := am.GetDelegationByCID(ctx, params.Subject)
|
||||||
if _, err := fmt.Sscanf(params.Subject, "%d", &delegationID); err != nil {
|
|
||||||
return nil, fmt.Errorf("invalid delegation_id: %w", err)
|
|
||||||
}
|
|
||||||
chain, err := am.GetDelegationChain(ctx, delegationID)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("get delegation chain: %w", err)
|
return nil, fmt.Errorf("get delegation: %w", err)
|
||||||
}
|
}
|
||||||
return json.Marshal(chain)
|
return json.Marshal(delegation)
|
||||||
case "revoke":
|
case "revoke":
|
||||||
if params.Subject == "" {
|
if params.Subject == "" {
|
||||||
return nil, errors.New("subject (delegation_id) required for revoke action")
|
return nil, errors.New("subject (cid) required for revoke action")
|
||||||
}
|
}
|
||||||
var delegationID int64
|
if err := am.RevokeDelegation(ctx, keybase.RevokeDelegationParams{
|
||||||
if _, err := fmt.Sscanf(params.Subject, "%d", &delegationID); err != nil {
|
DelegationCID: params.Subject,
|
||||||
return nil, fmt.Errorf("invalid delegation_id: %w", err)
|
RevokedBy: state.GetDID(),
|
||||||
}
|
Reason: "user revoked",
|
||||||
if err := am.RevokeDelegation(ctx, delegationID); err != nil {
|
}); err != nil {
|
||||||
return nil, fmt.Errorf("revoke delegation: %w", err)
|
return nil, fmt.Errorf("revoke delegation: %w", err)
|
||||||
}
|
}
|
||||||
return json.Marshal(map[string]bool{"revoked": true})
|
return json.Marshal(map[string]bool{"revoked": true})
|
||||||
|
case "verify":
|
||||||
|
if params.Subject == "" {
|
||||||
|
return nil, errors.New("subject (cid) required for verify action")
|
||||||
|
}
|
||||||
|
revoked, err := am.IsDelegationRevoked(ctx, params.Subject)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("check delegation: %w", err)
|
||||||
|
}
|
||||||
|
return json.Marshal(map[string]bool{"valid": !revoked, "revoked": revoked})
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unknown action for delegations: %s", params.Action)
|
return nil, fmt.Errorf("unknown action for delegations: %s", params.Action)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user