forked from tangled.org/core
this repo has no description

list valid knots in repo/new page

Changed files
+28 -4
appview
pages
templates
repo
state
rbac
+1
appview/pages/pages.go
··· 132 132 133 133 type NewRepoParams struct { 134 134 LoggedInUser *auth.User 135 + Knots []string 135 136 } 136 137 137 138 func (p *Pages) NewRepo(w io.Writer, params NewRepoParams) error {
+13 -3
appview/pages/templates/repo/new.html
··· 6 6 <label for="name">repo name</label> 7 7 <input type="text" id="name" name="name" required /> 8 8 9 - <label for="domain">domain</label> 10 - <input type="domain" id="domain" name="domain" required /> 9 + <br> 11 10 12 - <button type="submit">create repo</button> 11 + <fieldset> 12 + <legend>select a knot:</legend> 13 + {{ range .Knots }} 14 + <label> 15 + <input type="radio" name="domain" value="{{ . }}"> {{ . }} 16 + </label><br> 17 + <button type="submit">create repo</button> 18 + {{ else }} 19 + <p>no knots available</p> 20 + {{ end }} 21 + </fieldset> 22 + 13 23 </form> 14 24 {{end}}
+10 -1
appview/state/state.go
··· 490 490 func (s *State) AddRepo(w http.ResponseWriter, r *http.Request) { 491 491 switch r.Method { 492 492 case http.MethodGet: 493 + user := s.auth.GetUser(r) 494 + knots, err := s.enforcer.GetDomainsForUser(user.Did) 495 + 496 + if err != nil { 497 + log.Println("invalid user?", err) 498 + return 499 + } 500 + 493 501 s.pages.NewRepo(w, pages.NewRepoParams{ 494 - LoggedInUser: s.auth.GetUser(r), 502 + LoggedInUser: user, 503 + Knots: knots, 495 504 }) 496 505 case http.MethodPost: 497 506 user := s.auth.GetUser(r)
+4
rbac/rbac.go
··· 80 80 return err 81 81 } 82 82 83 + func (e *Enforcer) GetDomainsForUser(did string) ([]string, error) { 84 + return e.E.Enforcer.GetDomainsForUser(did) 85 + } 86 + 83 87 func (e *Enforcer) AddOwner(domain, owner string) error { 84 88 _, err := e.E.AddGroupingPolicy(owner, "server:owner", domain) 85 89 return err