1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-21 22:29:41 +02:00

Correct space public/protected/private detection logic

This commit is contained in:
sauls8t 2018-02-23 14:25:07 +00:00
parent ae6494b4f0
commit f8e47fe1d2
2 changed files with 10 additions and 10 deletions

View file

@ -118,12 +118,11 @@ func (h *Handler) SetSpacePermissions(w http.ResponseWriter, r *http.Request) {
return return
} }
url := ctx.GetAppURL(fmt.Sprintf("s/%s/%s", sp.RefID, stringutil.MakeSlug(sp.Name)))
me := false me := false
hasEveryoneRole := false hasEveryoneRole := false
roleCount := 0 roleCount := 0
url := ctx.GetAppURL(fmt.Sprintf("s/%s/%s", sp.RefID, stringutil.MakeSlug(sp.Name)))
for _, perm := range model.Permissions { for _, perm := range model.Permissions {
perm.OrgID = ctx.OrgID perm.OrgID = ctx.OrgID
perm.SpaceID = id perm.SpaceID = id
@ -136,20 +135,22 @@ func (h *Handler) SetSpacePermissions(w http.ResponseWriter, r *http.Request) {
// Only persist if there is a role! // Only persist if there is a role!
if permission.HasAnyPermission(perm) { if permission.HasAnyPermission(perm) {
// identify publically shared spaces // identify publically shared spaces
if perm.UserID == "0" || perm.UserID == "" { if perm.UserID == "" {
perm.UserID = "0" perm.UserID = "0"
}
if perm.UserID == "0" {
hasEveryoneRole = true hasEveryoneRole = true
} }
r := permission.EncodeUserPermissions(perm) r := permission.EncodeUserPermissions(perm)
roleCount++
for _, p := range r { for _, p := range r {
err = h.Store.Permission.AddPermission(ctx, p) err = h.Store.Permission.AddPermission(ctx, p)
if err != nil { if err != nil {
h.Runtime.Log.Error("set permission", err) h.Runtime.Log.Error("set permission", err)
} }
roleCount++
} }
// We send out space invitation emails to those users // We send out space invitation emails to those users
@ -161,6 +162,7 @@ func (h *Handler) SetSpacePermissions(w http.ResponseWriter, r *http.Request) {
existingUser, err := h.Store.User.Get(ctx, perm.UserID) existingUser, err := h.Store.User.Get(ctx, perm.UserID)
if err != nil { if err != nil {
response.WriteServerError(w, method, err) response.WriteServerError(w, method, err)
h.Runtime.Log.Error(method, err)
break break
} }
@ -187,6 +189,7 @@ func (h *Handler) SetSpacePermissions(w http.ResponseWriter, r *http.Request) {
if err != nil { if err != nil {
ctx.Transaction.Rollback() ctx.Transaction.Rollback()
response.WriteServerError(w, method, err) response.WriteServerError(w, method, err)
h.Runtime.Log.Error(method, err)
return return
} }
} }

View file

@ -334,14 +334,11 @@ func (h *Handler) GetViewable(w http.ResponseWriter, r *http.Request) {
sp, err := h.Store.Space.GetViewable(ctx) sp, err := h.Store.Space.GetViewable(ctx)
if err != nil && err != sql.ErrNoRows { if err != nil {
response.WriteServerError(w, method, err) // response.WriteServerError(w, method, err)
h.Runtime.Log.Error(method, err) h.Runtime.Log.Error(method, err)
return return
} }
if len(sp) == 0 {
sp = []space.Space{}
}
response.WriteJSON(w, sp) response.WriteJSON(w, sp)
} }