diff --git a/domain/category/mysql/store.go b/domain/category/mysql/store.go index 39dafe0c..991c39ba 100644 --- a/domain/category/mysql/store.go +++ b/domain/category/mysql/store.go @@ -53,7 +53,7 @@ func (s Scope) GetBySpace(ctx domain.RequestContext, spaceID string) (c []catego WHERE orgid=? AND labelid=? AND refid IN (SELECT refid FROM permission WHERE orgid=? AND location='category' AND refid IN ( SELECT refid from permission WHERE orgid=? AND who='user' AND (whoid=? OR whoid='0') AND location='category' UNION ALL - SELECT p.refid from permission p LEFT JOIN rolemember r ON p.whoid=r.roleid + SELECT p.refid from permission p LEFT JOIN rolemember r ON p.whoid=r.roleid WHERE p.orgid=? AND p.who='role' AND p.location='category' AND (r.userid=? OR r.userid='0') )) ORDER BY category`, ctx.OrgID, spaceID, ctx.OrgID, ctx.OrgID, ctx.UserID, ctx.OrgID, ctx.UserID) @@ -75,7 +75,7 @@ func (s Scope) GetAllBySpace(ctx domain.RequestContext, spaceID string) (c []cat WHERE orgid=? AND labelid=? AND labelid IN (SELECT refid FROM permission WHERE orgid=? AND location='space' AND refid IN ( SELECT refid from permission WHERE orgid=? AND who='user' AND (whoid=? OR whoid='0') AND location='space' AND action='view' UNION ALL - SELECT p.refid from permission p LEFT JOIN rolemember r ON p.whoid=r.roleid WHERE p.orgid=? AND p.who='role' AND p.location='space' + SELECT p.refid from permission p LEFT JOIN rolemember r ON p.whoid=r.roleid WHERE p.orgid=? AND p.who='role' AND p.location='space' AND p.action='view' AND (r.userid=? OR r.userid='0') )) ORDER BY category`, ctx.OrgID, spaceID, ctx.OrgID, ctx.OrgID, ctx.UserID, ctx.OrgID, ctx.UserID) @@ -197,7 +197,7 @@ func (s Scope) GetSpaceCategorySummary(ctx domain.RequestContext, spaceID string UNION ALL SELECT 'users' as type, refid AS categoryid, count(*) AS count FROM permission - WHERE orgid=? AND location='category' + WHERE orgid=? AND location='category' AND refid IN (SELECT refid FROM category WHERE orgid=? AND labelid=?) GROUP BY refid, type`, ctx.OrgID, spaceID, ctx.OrgID, ctx.OrgID, spaceID /*, ctx.OrgID, ctx.OrgID, spaceID*/) @@ -219,7 +219,8 @@ func (s Scope) GetDocumentCategoryMembership(ctx domain.RequestContext, document SELECT id, refid, orgid, labelid, category, created, revised FROM category WHERE orgid=? AND refid IN (SELECT categoryid FROM categorymember WHERE orgid=? AND documentid=?)`, ctx.OrgID, ctx.OrgID, documentID) - if err == sql.ErrNoRows { + if err == sql.ErrNoRows || len(c) == 0 { + c = []category.Category{} err = nil } if err != nil { @@ -236,7 +237,7 @@ func (s Scope) GetSpaceCategoryMembership(ctx domain.RequestContext, spaceID str WHERE orgid=? AND labelid=? AND labelid IN (SELECT refid FROM permission WHERE orgid=? AND location='space' AND refid IN ( SELECT refid from permission WHERE orgid=? AND who='user' AND (whoid=? OR whoid='0') AND location='space' AND action='view' UNION ALL - SELECT p.refid from permission p LEFT JOIN rolemember r ON p.whoid=r.roleid WHERE p.orgid=? AND p.who='role' AND p.location='space' + SELECT p.refid from permission p LEFT JOIN rolemember r ON p.whoid=r.roleid WHERE p.orgid=? AND p.who='role' AND p.location='space' AND p.action='view' AND (r.userid=? OR r.userid='0') )) ORDER BY documentid`, ctx.OrgID, spaceID, ctx.OrgID, ctx.OrgID, ctx.UserID, ctx.OrgID, ctx.UserID)