Skip to content

Commit c17ff73

Browse files
bietkulsiddharthlatest
authored andcommitted
feat: add expired value in permissions (#58)
* fix: users test * feat: add expired value in permissions * fix: revert isExpired method changes * fix: minor fixes
1 parent 04fe7d1 commit c17ff73

5 files changed

Lines changed: 31 additions & 7 deletions

File tree

model/permission/permission.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ type Permission struct {
4848
Description string `json:"description"`
4949
Includes []string `json:"include_fields"`
5050
Excludes []string `json:"exclude_fields"`
51+
Expired bool `json:"expired"`
5152
}
5253

5354
// Limits defines the rate limits for each category.

plugins/permissions/dao.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,23 @@ func initPlugin(indexName, mapping string) (*elasticsearch, error) {
5050
return es, nil
5151
}
5252

53+
func applyExpiredField(data []byte) ([]byte, error) {
54+
var rawPermission *permission.Permission
55+
err := json.Unmarshal(data, &rawPermission)
56+
if err != nil {
57+
return nil, fmt.Errorf("unable to un-marshal slice of raw permissions: %v", err)
58+
}
59+
rawPermission.Expired, err = rawPermission.IsExpired()
60+
if err != nil {
61+
return nil, err
62+
}
63+
marshalled, err := json.Marshal(rawPermission)
64+
if err != nil {
65+
return nil, fmt.Errorf("unable to marshal slice of raw permissions: %v", err)
66+
}
67+
return marshalled, nil
68+
}
69+
5370
func (es *elasticsearch) getPermission(ctx context.Context, username string) (*permission.Permission, error) {
5471
raw, err := es.getRawPermission(ctx, username)
5572
if err != nil {

plugins/permissions/dao_es6.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ func (es *elasticsearch) getRawOwnerPermissionsEs6(ctx context.Context, owner st
5151

5252
rawPermissions := []json.RawMessage{}
5353
for _, hit := range resp.Hits.Hits {
54-
rawPermissions = append(rawPermissions, *hit.Source)
54+
rawPermission, err := applyExpiredField(*hit.Source)
55+
if err != nil {
56+
return nil, err
57+
}
58+
rawPermissions = append(rawPermissions, rawPermission)
5559
}
5660

5761
raw, err := json.Marshal(rawPermissions)
@@ -72,12 +76,10 @@ func (es *elasticsearch) getRawPermissionEs6(ctx context.Context, username strin
7276
if err != nil {
7377
return nil, err
7478
}
75-
76-
src, err := response.Source.MarshalJSON()
79+
src, err := applyExpiredField(*response.Source)
7780
if err != nil {
7881
return nil, err
7982
}
80-
8183
return src, nil
8284
}
8385

plugins/permissions/dao_es7.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ func (es *elasticsearch) getRawOwnerPermissionsEs7(ctx context.Context, owner st
5151

5252
rawPermissions := []json.RawMessage{}
5353
for _, hit := range resp.Hits.Hits {
54-
rawPermissions = append(rawPermissions, hit.Source)
54+
rawPermission, err := applyExpiredField(hit.Source)
55+
if err != nil {
56+
return nil, err
57+
}
58+
rawPermissions = append(rawPermissions, rawPermission)
5559
}
5660

5761
raw, err := json.Marshal(rawPermissions)
@@ -72,11 +76,10 @@ func (es *elasticsearch) getRawPermissionEs7(ctx context.Context, username strin
7276
return nil, err
7377
}
7478

75-
src, err := response.Source.MarshalJSON()
79+
src, err := applyExpiredField(response.Source)
7680
if err != nil {
7781
return nil, err
7882
}
79-
8083
return src, nil
8184
}
8285

plugins/permissions/e2e_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ var createPermissionResponse = map[string]interface{}{
6868
"description": "TEST PERMISSION",
6969
"include_fields": nil,
7070
"exclude_fields": nil,
71+
"expired": false,
7172
}
7273

7374
var updatePermissionsRequest = map[string]interface{}{

0 commit comments

Comments
 (0)