3
0

Add missing role handle param

This commit is contained in:
Tomaž Jerman
2019-09-11 15:46:38 +02:00
parent 397bde5c3f
commit dacc855944
6 changed files with 45 additions and 3 deletions

View File

@@ -465,6 +465,12 @@
"required": true,
"title": "Name of Role"
},
{
"type": "string",
"name": "handle",
"required": true,
"title": "Handle for Role"
},
{
"type": "[]string",
"name": "members",
@@ -495,6 +501,12 @@
"required": false,
"title": "Name of Role"
},
{
"type": "string",
"name": "handle",
"required": false,
"title": "Handle for Role"
},
{
"type": "[]string",
"name": "members",

View File

@@ -40,6 +40,12 @@
"title": "Name of Role",
"type": "string"
},
{
"name": "handle",
"required": true,
"title": "Handle for Role",
"type": "string"
},
{
"name": "members",
"required": false,
@@ -70,6 +76,12 @@
"title": "Name of Role",
"type": "string"
},
{
"name": "handle",
"required": false,
"title": "Handle for Role",
"type": "string"
},
{
"name": "members",
"required": false,

View File

@@ -734,6 +734,7 @@ An organisation may have many roles. Roles may have many channels available. Acc
| Parameter | Type | Method | Description | Default | Required? |
| --------- | ---- | ------ | ----------- | ------- | --------- |
| name | string | POST | Name of Role | N/A | YES |
| handle | string | POST | Handle for Role | N/A | YES |
| members | []string | POST | Role member IDs | N/A | NO |
## Update role details
@@ -750,6 +751,7 @@ An organisation may have many roles. Roles may have many channels available. Acc
| --------- | ---- | ------ | ----------- | ------- | --------- |
| roleID | uint64 | PATH | Role ID | N/A | YES |
| name | string | POST | Name of Role | N/A | NO |
| handle | string | POST | Handle for Role | N/A | NO |
| members | []string | POST | Role member IDs | N/A | NO |
## Read role details and memberships

View File

@@ -86,6 +86,7 @@ var _ RequestFiller = NewRoleList()
// Role create request parameters
type RoleCreate struct {
Name string
Handle string
Members []string
}
@@ -97,6 +98,7 @@ func (r RoleCreate) Auditable() map[string]interface{} {
var out = map[string]interface{}{}
out["name"] = r.Name
out["handle"] = r.Handle
out["members"] = r.Members
return out
@@ -132,6 +134,9 @@ func (r *RoleCreate) Fill(req *http.Request) (err error) {
if val, ok := post["name"]; ok {
r.Name = val
}
if val, ok := post["handle"]; ok {
r.Handle = val
}
if val, ok := req.Form["members"]; ok {
r.Members = parseStrings(val)
@@ -146,6 +151,7 @@ var _ RequestFiller = NewRoleCreate()
type RoleUpdate struct {
RoleID uint64 `json:",string"`
Name string
Handle string
Members []string
}
@@ -158,6 +164,7 @@ func (r RoleUpdate) Auditable() map[string]interface{} {
out["roleID"] = r.RoleID
out["name"] = r.Name
out["handle"] = r.Handle
out["members"] = r.Members
return out
@@ -194,6 +201,9 @@ func (r *RoleUpdate) Fill(req *http.Request) (err error) {
if val, ok := post["name"]; ok {
r.Name = val
}
if val, ok := post["handle"]; ok {
r.Handle = val
}
if val, ok := req.Form["members"]; ok {
r.Members = parseStrings(val)

View File

@@ -38,7 +38,8 @@ func (ctrl *Role) List(ctx context.Context, r *request.RoleList) (interface{}, e
func (ctrl *Role) Create(ctx context.Context, r *request.RoleCreate) (interface{}, error) {
role := &types.Role{
Name: r.Name,
Name: r.Name,
Handle: r.Handle,
}
role, err := ctrl.svc.role.With(ctx).Create(role)
@@ -57,8 +58,9 @@ func (ctrl *Role) Create(ctx context.Context, r *request.RoleCreate) (interface{
func (ctrl *Role) Update(ctx context.Context, r *request.RoleUpdate) (interface{}, error) {
role := &types.Role{
ID: r.RoleID,
Name: r.Name,
ID: r.RoleID,
Name: r.Name,
Handle: r.Handle,
}
role, err := ctrl.svc.role.With(ctx).Update(role)

View File

@@ -75,6 +75,7 @@ func TestRoleCreate(t *testing.T) {
h.apiInit().
Post("/roles/").
FormData("name", string(rand.Bytes(10))).
FormData("handle", string(rand.Bytes(10))).
Expect(t).
Status(http.StatusOK).
Assert(helpers.AssertNoErrors).
@@ -100,10 +101,12 @@ func TestRoleUpdate(t *testing.T) {
h.allow(types.RolePermissionResource.AppendWildcard(), "update")
newName := "updated-" + string(rand.Bytes(10))
newHandle := "updated-" + string(rand.Bytes(10))
h.apiInit().
Put(fmt.Sprintf("/roles/%d", u.ID)).
FormData("name", newName).
FormData("handle", newHandle).
Expect(t).
Status(http.StatusOK).
Assert(helpers.AssertNoErrors).
@@ -113,6 +116,7 @@ func TestRoleUpdate(t *testing.T) {
h.a.NoError(err)
h.a.NotNil(u)
h.a.Equal(newName, u.Name)
h.a.Equal(newHandle, u.Handle)
}
func TestRoleDeleteForbidden(t *testing.T) {