Skip to content

Commit

Permalink
feat: permission v2 for project identity specific privilege
Browse files Browse the repository at this point in the history
  • Loading branch information
sheensantoscapadngan committed Nov 4, 2024
1 parent 69f398a commit 9f084fa
Show file tree
Hide file tree
Showing 4 changed files with 678 additions and 237 deletions.
45 changes: 45 additions & 0 deletions internal/client/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -827,10 +827,29 @@ type CreateTemporaryProjectIdentitySpecificPrivilegeRequest struct {
TemporaryAccessStartTime time.Time `json:"temporaryAccessStartTime"`
}

type CreateProjectIdentitySpecificPrivilegeV2Type struct {
IsTemporary bool `json:"isTemporary"`
TemporaryMode string `json:"temporaryMode"`
TemporaryRange string `json:"temporaryRange"`
TemporaryAccessStartTime time.Time `json:"temporaryAccessStartTime"`
}

type CreateProjectIdentitySpecificPrivilegeV2Request struct {
ProjectId string `json:"projectId"`
IdentityId string `json:"identityId"`
Slug string `json:"slug,omitempty"`
Permissions []map[string]interface{} `json:"permissions"`
Type CreateProjectIdentitySpecificPrivilegeV2Type `json:"type"`
}

type CreateProjectIdentitySpecificPrivilegeResponse struct {
Privilege ProjectIdentitySpecificPrivilege `json:"privilege"`
}

type CreateProjectIdentitySpecificPrivilegeV2Response struct {
Privilege ProjectIdentitySpecificPrivilege `json:"privilege"`
}

type UpdateProjectIdentitySpecificPrivilegeRequest struct {
ProjectSlug string `json:"projectSlug"`
IdentityId string `json:"identityId"`
Expand All @@ -847,6 +866,24 @@ type UpdateProjectIdentitySpecificPrivilegeDataRequest struct {
TemporaryAccessStartTime time.Time `json:"temporaryAccessStartTime,omitempty"`
}

type UpdateProjectIdentitySpecificPrivilegeV2Type struct {
IsTemporary bool `json:"isTemporary"`
TemporaryMode string `json:"temporaryMode,omitempty"`
TemporaryRange string `json:"temporaryRange,omitempty"`
TemporaryAccessStartTime time.Time `json:"temporaryAccessStartTime,omitempty"`
}

type UpdateProjectIdentitySpecificPrivilegeV2Request struct {
ID string
Slug string `json:"slug,omitempty"`
Permissions []map[string]interface{} `json:"permissions"`
Type UpdateProjectIdentitySpecificPrivilegeV2Type `json:"type"`
}

type UpdateProjectIdentitySpecificPrivilegeV2Response struct {
Privilege ProjectIdentitySpecificPrivilege `json:"privilege"`
}

type UpdateProjectIdentitySpecificPrivilegeResponse struct {
Privilege ProjectIdentitySpecificPrivilege `json:"privilege"`
}
Expand All @@ -867,10 +904,18 @@ type GetProjectIdentitySpecificPrivilegeRequest struct {
PrivilegeSlug string `json:"privilegeSlug,omitempty"`
}

type GetProjectIdentitySpecificPrivilegeV2Request struct {
ID string
}

type GetProjectIdentitySpecificPrivilegeResponse struct {
Privilege ProjectIdentitySpecificPrivilege `json:"privilege"`
}

type GetProjectIdentitySpecificPrivilegeV2Response struct {
Privilege ProjectIdentitySpecificPrivilege `json:"privilege"`
}

type ProjectGroupRole struct {
ID string `json:"id"`
Role string `json:"role"`
Expand Down
60 changes: 60 additions & 0 deletions internal/client/project_identity_specific_privilege.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,26 @@ func (client Client) CreateTemporaryProjectIdentitySpecificPrivilege(request Cre
return responeData, nil
}

func (client Client) CreateProjectIdentitySpecificPrivilegeV2(request CreateProjectIdentitySpecificPrivilegeV2Request) (CreateProjectIdentitySpecificPrivilegeV2Response, error) {
var responeData CreateProjectIdentitySpecificPrivilegeV2Response
response, err := client.Config.HttpClient.
R().
SetResult(&responeData).
SetHeader("User-Agent", USER_AGENT).
SetBody(request).
Post("/api/v2/identity-project-additional-privilege")

if err != nil {
return CreateProjectIdentitySpecificPrivilegeV2Response{}, fmt.Errorf("CreateProjectIdentitySpecificPrivilegeV2: Unable to complete api request [err=%s]", err)
}

if response.IsError() {
return CreateProjectIdentitySpecificPrivilegeV2Response{}, fmt.Errorf("CreateProjectIdentitySpecificPrivilegeV2: Unsuccessful response. [response=%s]", response)
}

return responeData, nil
}

func (client Client) DeleteProjectIdentitySpecificPrivilege(request DeleteProjectIdentitySpecificPrivilegeRequest) (DeleteProjectIdentitySpecificPrivilegeResponse, error) {
var responseData DeleteProjectIdentitySpecificPrivilegeResponse
response, err := client.Config.HttpClient.
Expand Down Expand Up @@ -82,6 +102,26 @@ func (client Client) UpdateProjectIdentitySpecificPrivilege(request UpdateProjec
return responseData, nil
}

func (client Client) UpdateProjectIdentitySpecificPrivilegeV2(request UpdateProjectIdentitySpecificPrivilegeV2Request) (UpdateProjectIdentitySpecificPrivilegeV2Response, error) {
var responseData UpdateProjectIdentitySpecificPrivilegeV2Response
response, err := client.Config.HttpClient.
R().
SetResult(&responseData).
SetHeader("User-Agent", USER_AGENT).
SetBody(request).
Patch(fmt.Sprintf("/api/v2/identity-project-additional-privilege/%s", request.ID))

if err != nil {
return UpdateProjectIdentitySpecificPrivilegeV2Response{}, fmt.Errorf("UpdateProjectIdentitySpecificPrivilegeV2: Unable to complete api request [err=%s]", err)
}

if response.IsError() {
return UpdateProjectIdentitySpecificPrivilegeV2Response{}, fmt.Errorf("UpdateProjectIdentitySpecificPrivilegeV2: Unsuccessful response. [response=%s]", response)
}

return responseData, nil
}

func (client Client) GetProjectIdentitySpecificPrivilegeBySlug(request GetProjectIdentitySpecificPrivilegeRequest) (GetProjectIdentitySpecificPrivilegeResponse, error) {
var responseData GetProjectIdentitySpecificPrivilegeResponse
response, err := client.Config.HttpClient.
Expand All @@ -101,3 +141,23 @@ func (client Client) GetProjectIdentitySpecificPrivilegeBySlug(request GetProjec

return responseData, nil
}

func (client Client) GetProjectIdentitySpecificPrivilegeV2(request GetProjectIdentitySpecificPrivilegeV2Request) (GetProjectIdentitySpecificPrivilegeV2Response, error) {
var responseData GetProjectIdentitySpecificPrivilegeV2Response
response, err := client.Config.HttpClient.
R().
SetResult(&responseData).
SetHeader("User-Agent", USER_AGENT).
SetBody(request).
Get(fmt.Sprintf("/api/v2/identity-project-additional-privilege/%s", request.ID))

if err != nil {
return GetProjectIdentitySpecificPrivilegeV2Response{}, fmt.Errorf("GetProjectIdentitySpecificPrivilegeV2: Unable to complete api request [err=%s]", err)
}

if response.IsError() {
return GetProjectIdentitySpecificPrivilegeV2Response{}, fmt.Errorf("GetProjectIdentitySpecificPrivilegeV2: Unsuccessful response. [response=%s]", response)
}

return responseData, nil
}
Loading

0 comments on commit 9f084fa

Please sign in to comment.