mirror of
https://github.com/documize/community.git
synced 2025-08-02 20:15:26 +02:00
New schema for permissions and roles management
This commit is contained in:
parent
fbf2222eda
commit
c51ba65b1d
17 changed files with 810 additions and 665 deletions
|
@ -34,7 +34,7 @@ func (s Scope) Add(ctx domain.RequestContext, account account.Account) (err erro
|
|||
account.Created = time.Now().UTC()
|
||||
account.Revised = time.Now().UTC()
|
||||
|
||||
stmt, err := ctx.Transaction.Preparex("INSERT INTO account (refid, orgid, userid, admin, editor, active, created, revised) VALUES (?, ?, ?, ?, ?, ?, ?, ?)")
|
||||
stmt, err := ctx.Transaction.Preparex("INSERT INTO account (refid, orgid, userid, admin, editor, users, active, created, revised) VALUES (?, ?, ?, ?, ?, ?, ?, ?)")
|
||||
defer streamutil.Close(stmt)
|
||||
|
||||
if err != nil {
|
||||
|
@ -42,7 +42,7 @@ func (s Scope) Add(ctx domain.RequestContext, account account.Account) (err erro
|
|||
return
|
||||
}
|
||||
|
||||
_, err = stmt.Exec(account.RefID, account.OrgID, account.UserID, account.Admin, account.Editor, account.Active, account.Created, account.Revised)
|
||||
_, err = stmt.Exec(account.RefID, account.OrgID, account.UserID, account.Admin, account.Editor, account.Users, account.Active, account.Created, account.Revised)
|
||||
|
||||
if err != nil {
|
||||
err = errors.Wrap(err, "unable to execute insert for account")
|
||||
|
@ -115,7 +115,7 @@ func (s Scope) CountOrgAccounts(ctx domain.RequestContext) (c int) {
|
|||
func (s Scope) UpdateAccount(ctx domain.RequestContext, account account.Account) (err error) {
|
||||
account.Revised = time.Now().UTC()
|
||||
|
||||
stmt, err := ctx.Transaction.PrepareNamed("UPDATE account SET userid=:userid, admin=:admin, editor=:editor, active=:active, revised=:revised WHERE orgid=:orgid AND refid=:refid")
|
||||
stmt, err := ctx.Transaction.PrepareNamed("UPDATE account SET userid=:userid, admin=:admin, editor=:editor, users=:users, active=:active, revised=:revised WHERE orgid=:orgid AND refid=:refid")
|
||||
defer streamutil.Close(stmt)
|
||||
|
||||
if err != nil {
|
||||
|
|
|
@ -467,6 +467,7 @@ func (h *Handler) Update(w http.ResponseWriter, r *http.Request) {
|
|||
a.Editor = u.Editor
|
||||
a.Admin = u.Admin
|
||||
a.Active = u.Active
|
||||
a.Users = u.ViewUsers
|
||||
|
||||
err = h.Store.Account.UpdateAccount(ctx, a)
|
||||
if err != nil {
|
||||
|
|
|
@ -240,29 +240,6 @@ func (s Scope) GetVisibleUsers(ctx domain.RequestContext) (u []user.User, err er
|
|||
return
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
`SELECT
|
||||
id, refid, firstname, lastname, email, initials, password, salt, reset, created, revised
|
||||
FROM
|
||||
user
|
||||
WHERE
|
||||
refid IN (SELECT userid FROM account where orgid = '4Tec34w8')
|
||||
AND refid IN
|
||||
(SELECT userid FROM labelrole where userid != '' AND orgid='4Tec34w8'
|
||||
AND labelid IN (
|
||||
SELECT refid FROM label WHERE orgid='4Tec34w8' AND type=2 AND userid='iJdf6qUW'
|
||||
UNION ALL
|
||||
SELECT refid FROM label a WHERE orgid='4Tec34w8' AND type=1 AND refid IN (SELECT labelid FROM labelrole WHERE orgid='4Tec34w8' AND userid='' AND (canedit=1 OR canview=1))
|
||||
UNION ALL
|
||||
SELECT refid FROM label a WHERE orgid='4Tec34w8' AND type=3 AND refid IN (SELECT labelid FROM labelrole WHERE orgid='4Tec34w8' AND userid='iJdf6qUW' AND (canedit=1 OR canview=1))
|
||||
)
|
||||
GROUP BY userid)
|
||||
ORDER BY
|
||||
firstname, lastname`
|
||||
|
||||
*/
|
||||
|
||||
// UpdateUser updates the user table using the given replacement user record.
|
||||
func (s Scope) UpdateUser(ctx domain.RequestContext, u user.User) (err error) {
|
||||
u.Revised = time.Now().UTC()
|
||||
|
|
|
@ -39,12 +39,14 @@ func AttachUserAccounts(ctx domain.RequestContext, s domain.Store, orgID string,
|
|||
u.Editor = false
|
||||
u.Admin = false
|
||||
u.Active = false
|
||||
u.ViewUsers = false
|
||||
|
||||
for _, account := range u.Accounts {
|
||||
if account.OrgID == orgID {
|
||||
u.Admin = account.Admin
|
||||
u.Editor = account.Editor
|
||||
u.Active = account.Active
|
||||
u.ViewUsers = account.Users
|
||||
break
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue