💾 Archived View for gemini.rmf-dev.com › repo › Vaati › Gemigit › files › e71122a28d0da9902d39cef917… captured on 2024-02-05 at 09:48:08. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Go Back

0 package gmi

1

2 import (

3 "gemigit/db"

4 "gemigit/repo"

5 "github.com/pitr/gig"

6 )

7

8 func ChangeDesc(c gig.Context) error {

9 newdesc, err := c.QueryString()

10 if err != nil {

11 return c.NoContent(gig.StatusBadRequest,

12 "Invalid input received")

13 }

14 if newdesc == "" {

15 return c.NoContent(gig.StatusInput,

16 "New account description")

17 }

18 user, exist := db.GetUser(c.CertHash())

19 if !exist {

20 return c.NoContent(gig.StatusBadRequest,

21 "Invalid username")

22 }

23 if err := user.ChangeDescription(newdesc, c.CertHash());

24 err != nil {

25 return c.NoContent(gig.StatusBadRequest, err.Error())

26 }

27 return accountRedirect(c, "")

28 }

29

30 func AddRepo(c gig.Context) error {

31 name, err := c.QueryString()

32 if err != nil {

33 return c.NoContent(gig.StatusBadRequest, err.Error())

34 }

35 if name == "" {

36 return c.NoContent(gig.StatusInput, "Repository name")

37 }

38 user, b := db.GetUser(c.CertHash())

39 if !b {

40 return c.NoContent(gig.StatusBadRequest,

41 "Cannot find username")

42 }

43 if err := user.CreateRepo(name, c.CertHash());

44 err != nil {

45 return c.NoContent(gig.StatusBadRequest,

46 err.Error())

47 }

48 if err := repo.InitRepo(name, user.Name); err != nil {

49 return c.NoContent(gig.StatusBadRequest,

50 err.Error())

51 }

52 return accountRedirect(c, "repo/" + name)

53 }

54

55 func AddGroup(c gig.Context) error {

56 name, err := c.QueryString()

57 if err != nil {

58 return c.NoContent(gig.StatusBadRequest, err.Error())

59 }

60 if name == "" {

61 return c.NoContent(gig.StatusInput, "Group name")

62 }

63 user, b := db.GetUser(c.CertHash())

64 if !b {

65 return c.NoContent(gig.StatusBadRequest,

66 "Cannot find username")

67 }

68 if err := user.CreateGroup(name, c.CertHash());

69 err != nil {

70 return c.NoContent(gig.StatusBadRequest,

71 err.Error())

72 }

73 return accountRedirect(c, "groups/" + name)

74 }

75

76 func ChangePassword(c gig.Context) error {

77 passwd, err := c.QueryString()

78 if err != nil {

79 return c.NoContent(gig.StatusBadRequest,

80 "Invalid input received")

81 }

82 if passwd == "" {

83 return c.NoContent(gig.StatusSensitiveInput, "New password")

84 }

85 user, b := db.GetUser(c.CertHash())

86 if !b {

87 return c.NoContent(gig.StatusBadRequest,

88 "Cannot find username")

89 }

90 err = user.ChangePassword(passwd, c.CertHash())

91 if err != nil {

92 return c.NoContent(gig.StatusBadRequest, err.Error())

93 }

94 return accountRedirect(c, "")

95 }

96

97 func Disconnect(c gig.Context) error {

98 user, exist := db.GetUser(c.CertHash())

99 if !exist {

100 return c.NoContent(gig.StatusBadRequest, "Invalid username")

101 }

102 if err := user.Disconnect(c.CertHash()); err != nil {

103 return c.NoContent(gig.StatusBadRequest, err.Error())

104 }

105 return c.NoContent(gig.StatusRedirectTemporary, "/")

106 }

107

108 func DisconnectAll(c gig.Context) error {

109 user, exist := db.GetUser(c.CertHash())

110 if !exist {

111 return c.NoContent(gig.StatusBadRequest, "Invalid username")

112 }

113 if err := user.DisconnectAll(c.CertHash()); err != nil {

114 return c.NoContent(gig.StatusBadRequest, err.Error())

115 }

116 return accountRedirect(c, "")

117 }

118