💾 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
-=-=-=-=-=-=-
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