(tokenData TokenData, params url.Values)
| 448 | } |
| 449 | |
| 450 | func (a *Api) CreateToken(tokenData TokenData, params url.Values) (string, error) { |
| 451 | |
| 452 | ownerId := params.Get("owner") |
| 453 | if ownerId == "" { |
| 454 | return "", errors.New("Invalid owner paramater") |
| 455 | } |
| 456 | |
| 457 | user, _ := a.db.GetUser(tokenData.Owner) |
| 458 | |
| 459 | if tokenData.Owner != ownerId && !user.IsAdmin { |
| 460 | return "", errors.New("Unauthorized") |
| 461 | } |
| 462 | |
| 463 | var owner User |
| 464 | |
| 465 | if tokenData.Owner == ownerId { |
| 466 | owner = user |
| 467 | } else { |
| 468 | owner, _ = a.db.GetUser(ownerId) |
| 469 | } |
| 470 | |
| 471 | client := params.Get("client") |
| 472 | |
| 473 | if client != "any" { |
| 474 | if _, exists := owner.Clients[client]; !exists { |
| 475 | return "", fmt.Errorf("Client %s does not exist for user %s", client, ownerId) |
| 476 | } |
| 477 | } else { |
| 478 | client = "" |
| 479 | } |
| 480 | |
| 481 | token, err := a.db.AddToken(ownerId, client) |
| 482 | if err != nil { |
| 483 | return "", errors.New("Failed to create token") |
| 484 | } |
| 485 | |
| 486 | return token, nil |
| 487 | } |
| 488 | |
| 489 | func (a *Api) DeleteToken(tokenData TokenData, params url.Values) error { |
| 490 | token := params.Get("token") |
no test coverage detected