user_deny.go 854 B

1234567891011121314151617181920212223242526272829303132333435
  1. package cmd
  2. import (
  3. "errors"
  4. "github.com/urfave/cli/v2"
  5. )
  6. var flagsDeny = userCommandFlags()
  7. var cmdDeny = &cli.Command{
  8. Name: "deny",
  9. Usage: "Revoke user access from a topic",
  10. UsageText: "ntfy deny USERNAME TOPIC",
  11. Flags: flagsDeny,
  12. Before: initConfigFileInputSource("config", flagsDeny),
  13. Action: execUserDeny,
  14. Category: categoryServer,
  15. }
  16. func execUserDeny(c *cli.Context) error {
  17. username := c.Args().Get(0)
  18. topic := c.Args().Get(1)
  19. if username == "" {
  20. return errors.New("username expected, type 'ntfy deny --help' for help")
  21. } else if topic == "" {
  22. return errors.New("topic expected, type 'ntfy deny --help' for help")
  23. }
  24. if username == userEveryone {
  25. username = ""
  26. }
  27. manager, err := createAuthManager(c)
  28. if err != nil {
  29. return err
  30. }
  31. return doAccessAllow(c, manager, username, topic, false, false)
  32. }