Skip to content

Commit 0886349

Browse files
committed
configstore: add actions and roles
Add initial actions and roles. An action represents a specific action on a resource. Roles are predefined roles (not saved on storage) that can do some actions.
1 parent a438a06 commit 0886349

13 files changed

Lines changed: 321 additions & 34 deletions

File tree

cmd/agola/cmd/orgmemberadd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func orgMemberAdd(cmd *cobra.Command, args []string) error {
6363
gwclient := gwclient.NewClient(gatewayURL, token)
6464

6565
log.Infof("adding/updating member %q to organization %q with role %q", orgMemberAddOpts.username, orgMemberAddOpts.orgname, orgMemberAddOpts.role)
66-
_, _, err := gwclient.AddOrgMember(context.TODO(), orgMemberAddOpts.orgname, orgMemberAddOpts.username, gwapitypes.MemberRole(orgMemberAddOpts.role))
66+
_, _, err := gwclient.AddOrgMember(context.TODO(), orgMemberAddOpts.orgname, orgMemberAddOpts.username, gwapitypes.OrgMemberRole(orgMemberAddOpts.role))
6767
if err != nil {
6868
return errors.Errorf("failed to add/update organization member: %w", err)
6969
}

internal/services/configstore/action/org.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import (
3232

3333
type OrgMemberResponse struct {
3434
User *types.User
35-
Role types.MemberRole
35+
Role types.OrgMemberRole
3636
}
3737

3838
func orgMemberResponse(orgUser *readdb.OrgUser) *OrgMemberResponse {
@@ -138,7 +138,7 @@ func (h *ActionHandler) CreateOrg(ctx context.Context, org *types.Organization)
138138
ID: uuid.NewV4().String(),
139139
OrganizationID: org.ID,
140140
UserID: org.CreatorUserID,
141-
MemberRole: types.MemberRoleOwner,
141+
MemberRole: types.OrgMemberRoleOwner,
142142
}
143143
orgmemberj, err := json.Marshal(orgmember)
144144
if err != nil {
@@ -221,8 +221,8 @@ func (h *ActionHandler) DeleteOrg(ctx context.Context, orgRef string) error {
221221

222222
// AddOrgMember add/updates an org member.
223223
// TODO(sgotti) handle invitation when implemented
224-
func (h *ActionHandler) AddOrgMember(ctx context.Context, orgRef, userRef string, role types.MemberRole) (*types.OrganizationMember, error) {
225-
if !types.IsValidMemberRole(role) {
224+
func (h *ActionHandler) AddOrgMember(ctx context.Context, orgRef, userRef string, role types.OrgMemberRole) (*types.OrganizationMember, error) {
225+
if !types.IsValidOrgMemberRole(role) {
226226
return nil, util.NewErrBadRequest(errors.Errorf("invalid role %q", role))
227227
}
228228

internal/services/configstore/action/user.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,7 @@ func (h *ActionHandler) DeleteUserToken(ctx context.Context, userRef, tokenName
632632

633633
type UserOrgsResponse struct {
634634
Organization *types.Organization
635-
Role types.MemberRole
635+
Role types.OrgMemberRole
636636
}
637637

638638
func userOrgsResponse(userOrg *readdb.UserOrg) *UserOrgsResponse {

internal/services/configstore/readdb/org.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ func scanOrgMembers(rows *sql.Rows) ([]*types.OrganizationMember, []string, erro
297297

298298
type OrgUser struct {
299299
User *types.User
300-
Role types.MemberRole
300+
Role types.OrgMemberRole
301301
}
302302

303303
// TODO(sgotti) implement cursor fetching
@@ -348,7 +348,7 @@ func (r *ReadDB) GetOrgUsers(tx *db.Tx, orgID string) ([]*OrgUser, error) {
348348

349349
type UserOrg struct {
350350
Organization *types.Organization
351-
Role types.MemberRole
351+
Role types.OrgMemberRole
352352
}
353353

354354
// TODO(sgotti) implement cursor fetching

internal/services/gateway/action/auth.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func (h *ActionHandler) IsOrgOwner(ctx context.Context, orgID string) (bool, err
6868
if userOrg.Organization.ID != orgID {
6969
continue
7070
}
71-
if userOrg.Role == cstypes.MemberRoleOwner {
71+
if userOrg.Role == cstypes.OrgMemberRoleOwner {
7272
return true, nil
7373
}
7474
}
@@ -103,7 +103,7 @@ func (h *ActionHandler) IsProjectOwner(ctx context.Context, ownerType cstypes.Co
103103
if userOrg.Organization.ID != ownerID {
104104
continue
105105
}
106-
if userOrg.Role == cstypes.MemberRoleOwner {
106+
if userOrg.Role == cstypes.OrgMemberRoleOwner {
107107
return true, nil
108108
}
109109
}

internal/services/gateway/action/org.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ type OrgMembersResponse struct {
5252

5353
type OrgMemberResponse struct {
5454
User *cstypes.User
55-
Role cstypes.MemberRole
55+
Role cstypes.OrgMemberRole
5656
}
5757

5858
func (h *ActionHandler) GetOrgMembers(ctx context.Context, orgRef string) (*OrgMembersResponse, error) {
@@ -143,7 +143,7 @@ type AddOrgMemberResponse struct {
143143
User *cstypes.User
144144
}
145145

146-
func (h *ActionHandler) AddOrgMember(ctx context.Context, orgRef, userRef string, role cstypes.MemberRole) (*AddOrgMemberResponse, error) {
146+
func (h *ActionHandler) AddOrgMember(ctx context.Context, orgRef, userRef string, role cstypes.OrgMemberRole) (*AddOrgMemberResponse, error) {
147147
org, resp, err := h.configstoreClient.GetOrg(ctx, orgRef)
148148
if err != nil {
149149
return nil, ErrFromRemote(resp, err)

internal/services/gateway/api/org.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,10 @@ func (h *OrgsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
189189
}
190190
}
191191

192-
func createOrgMemberResponse(user *cstypes.User, role cstypes.MemberRole) *gwapitypes.OrgMemberResponse {
192+
func createOrgMemberResponse(user *cstypes.User, role cstypes.OrgMemberRole) *gwapitypes.OrgMemberResponse {
193193
return &gwapitypes.OrgMemberResponse{
194194
User: createUserResponse(user),
195-
Role: gwapitypes.MemberRole(role),
195+
Role: gwapitypes.OrgMemberRole(role),
196196
}
197197
}
198198

@@ -229,12 +229,12 @@ func (h *OrgMembersHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
229229
}
230230
}
231231

232-
func createAddOrgMemberResponse(org *cstypes.Organization, user *cstypes.User, role cstypes.MemberRole) *gwapitypes.AddOrgMemberResponse {
232+
func createAddOrgMemberResponse(org *cstypes.Organization, user *cstypes.User, role cstypes.OrgMemberRole) *gwapitypes.AddOrgMemberResponse {
233233
return &gwapitypes.AddOrgMemberResponse{
234234
Organization: createOrgResponse(org),
235235
OrgMemberResponse: gwapitypes.OrgMemberResponse{
236236
User: createUserResponse(user),
237-
Role: gwapitypes.MemberRole(role),
237+
Role: gwapitypes.OrgMemberRole(role),
238238
},
239239
}
240240
}
@@ -262,7 +262,7 @@ func (h *AddOrgMemberHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
262262
return
263263
}
264264

265-
ares, err := h.ah.AddOrgMember(ctx, orgRef, userRef, cstypes.MemberRole(req.Role))
265+
ares, err := h.ah.AddOrgMember(ctx, orgRef, userRef, cstypes.OrgMemberRole(req.Role))
266266
if httpError(w, err) {
267267
h.log.Errorf("err: %+v", err)
268268
return

services/configstore/api/types/org.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ import (
1919
)
2020

2121
type AddOrgMemberRequest struct {
22-
Role cstypes.MemberRole
22+
Role cstypes.OrgMemberRole
2323
}
2424

2525
type OrgMemberResponse struct {
2626
User *cstypes.User
27-
Role cstypes.MemberRole
27+
Role cstypes.OrgMemberRole
2828
}

services/configstore/api/types/user.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,5 @@ type CreateUserTokenResponse struct {
5959

6060
type UserOrgsResponse struct {
6161
Organization *cstypes.Organization
62-
Role cstypes.MemberRole
62+
Role cstypes.OrgMemberRole
6363
}

services/configstore/client/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ func (c *Client) DeleteOrg(ctx context.Context, orgRef string) (*http.Response,
531531
return c.getResponse(ctx, "DELETE", fmt.Sprintf("/orgs/%s", orgRef), nil, jsonContent, nil)
532532
}
533533

534-
func (c *Client) AddOrgMember(ctx context.Context, orgRef, userRef string, role cstypes.MemberRole) (*cstypes.OrganizationMember, *http.Response, error) {
534+
func (c *Client) AddOrgMember(ctx context.Context, orgRef, userRef string, role cstypes.OrgMemberRole) (*cstypes.OrganizationMember, *http.Response, error) {
535535
req := &csapitypes.AddOrgMemberRequest{
536536
Role: role,
537537
}

0 commit comments

Comments
 (0)