Skip to content

Commit

Permalink
add perm_manage_bans to roles
Browse files Browse the repository at this point in the history
  • Loading branch information
nektro committed Oct 9, 2020
1 parent 583eac6 commit 0de3a79
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 3 deletions.
2 changes: 1 addition & 1 deletion pkg/db/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ var (
Props = Properties{}
BuiltInRoles = map[UUID]*Role{
"o": &Role{
0, "o", 0, "Owner", "", pa, pa, false, pa, pa, Time(etc.Epoch), pa,
0, "o", 0, "Owner", "", pa, pa, false, pa, pa, Time(etc.Epoch), pa, pa,
},
}
)
Expand Down
11 changes: 9 additions & 2 deletions pkg/db/role.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ type Role struct {
PermManageInvites Perm `json:"perm_manage_invites" dbsorm:"1"`
CreatedOn Time `json:"created_on" dbsorm:"1"`
PermViewAudits Perm `json:"perm_view_audits" dbsorm:"1"`
PermManageBans Perm `json:"perm_manage_bans" dbsorm:"1"`
}

//
Expand All @@ -36,7 +37,7 @@ func CreateRole(name string) *Role {
uid := NewUUID()
p := PermIgnore
co := now()
r := &Role{id, uid, int(id), name, "", p, p, false, p, p, co, p}
r := &Role{id, uid, int(id), name, "", p, p, false, p, p, co, p, p}
db.Build().InsI(cTableRoles, r).Exe()
Props.Increment("count_" + cTableRoles)
return r
Expand All @@ -58,7 +59,7 @@ func QueryRoleByUID(uid UUID) (*Role, bool) {
// Scan implements dbstorage.Scannable
func (v Role) Scan(rows *sql.Rows) dbstorage.Scannable {
rows.Scan(&v.ID, &v.UUID, &v.Position, &v.Name, &v.Color, &v.PermManageChannels, &v.PermManageRoles, &v.Distinguish, &v.PermManageServer, &v.PermManageInvites, &v.CreatedOn,
&v.PermViewAudits)
&v.PermViewAudits, &v.PermManageBans)
return &v
}

Expand Down Expand Up @@ -209,3 +210,9 @@ func (v *Role) SetPermViewAudits(p Perm) {
doUp(v, "perm_view_audits", strconv.Itoa(int(p)))
v.PermManageInvites = p
}

// SetPermMngBans sets
func (v *Role) SetPermMngBans(p Perm) {
doUp(v, "perm_manage_bans", strconv.Itoa(int(p)))
v.PermManageBans = p
}
1 change: 1 addition & 0 deletions pkg/handler/roles.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ func RoleUpdate(w http.ResponseWriter, r *http.Request) {
"perm_manage_roles": rl.SetPermMngRoles,
"perm_manage_invites": rl.SetPermMngInvites,
"perm_view_audits": rl.SetPermViewAudits,
"perm_manage_bans": rl.SetPermMngBans,
}
for pk, pv := range perms {
if n == pk {
Expand Down
5 changes: 5 additions & 0 deletions pkg/ws/user_perms.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ type UserPerms struct {
ManageServer bool `json:"manage_server"`
ManageInvites bool `json:"manage_invites"`
ViewAudits bool `json:"view_audits"`
ManageBans bool `json:"manage_bans"`
}

// From calculates a user's permissions based on the roles they have
Expand Down Expand Up @@ -38,6 +39,10 @@ func (v UserPerms) From(user *db.User) *UserPerms {
case db.PermDeny, db.PermAllow:
v.ViewAudits = role.PermViewAudits.ToBool()
}
switch role.PermManageBans {
case db.PermDeny, db.PermAllow:
v.ManageBans = role.PermManageBans.ToBool()
}
}
return &v
}
1 change: 1 addition & 0 deletions www/chat/index.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@
<x-3s-toggle name="perm_manage_roles" label="{{translate 's030'}}" fill=""></x-3s-toggle>
<x-3s-toggle name="perm_manage_invites" label="{{translate 's036'}}" fill=""></x-3s-toggle>
<x-3s-toggle name="perm_view_audits" label="{{translate 's046'}}" fill=""></x-3s-toggle>
<x-3s-toggle name="perm_manage_bans" label="{{translate 's052'}}" fill=""></x-3s-toggle>
<hr>
<h3>{{translate 's047'}}</h3>
<x-button method="delete" class="danger" fill="" text="{{translate 's041'}}"></x-button>
Expand Down

0 comments on commit 0de3a79

Please sign in to comment.