summaryrefslogtreecommitdiffstats
path: root/api4/context.go
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2018-02-06 15:34:08 +0000
committerGitHub <noreply@github.com>2018-02-06 15:34:08 +0000
commite1cd64613591cf5a990442a69ebf188258bd0cb5 (patch)
treead9f247a2c75b0bc03de93dbbfc038afb6b69545 /api4/context.go
parent1c7f25773a77ceb9e84feabe3907e7f93f6870e4 (diff)
downloadchat-e1cd64613591cf5a990442a69ebf188258bd0cb5.tar.gz
chat-e1cd64613591cf5a990442a69ebf188258bd0cb5.tar.bz2
chat-e1cd64613591cf5a990442a69ebf188258bd0cb5.zip
XYZ-37: Advanced Permissions Phase 1 Backend. (#8159)
* XYZ-13: Update Permission and Role structs to new design. * XYZ-10: Role store. * XYZ-9/XYZ-44: Roles API endpoints and WebSocket message. * XYZ-8: Switch server permissions checks to store backed roles. * XYZ-58: Proper validation of roles where required. * XYZ-11/XYZ-55: Migration to store backed roles from policy config. * XYZ-37: Update unit tests to work with database roles. * XYZ-56: Remove the "guest" role. * Changes to SetDefaultRolesFromConfig. * Short-circuit the store if nothing has changed. * Address first round of review comments. * Address second round of review comments.
Diffstat (limited to 'api4/context.go')
-rw-r--r--api4/context.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/api4/context.go b/api4/context.go
index b10ea7a9b..cdb9f83db 100644
--- a/api4/context.go
+++ b/api4/context.go
@@ -641,3 +641,26 @@ func (c *Context) RequireActionId() *Context {
}
return c
}
+
+func (c *Context) RequireRoleId() *Context {
+ if c.Err != nil {
+ return c
+ }
+
+ if len(c.Params.RoleId) != 26 {
+ c.SetInvalidUrlParam("role_id")
+ }
+ return c
+}
+
+func (c *Context) RequireRoleName() *Context {
+ if c.Err != nil {
+ return c
+ }
+
+ if !model.IsValidRoleName(c.Params.RoleName) {
+ c.SetInvalidUrlParam("role_name")
+ }
+
+ return c
+}