diff --git a/chaoscenter/authentication/api/handlers/rest/project_handler.go b/chaoscenter/authentication/api/handlers/rest/project_handler.go
index 9d98b2a16e6..33dc02c9530 100644
--- a/chaoscenter/authentication/api/handlers/rest/project_handler.go
+++ b/chaoscenter/authentication/api/handlers/rest/project_handler.go
@@ -413,7 +413,7 @@ func SendInvitation(service services.ApplicationService) gin.HandlerFunc {
}
// Validating member role
- if member.Role == nil || (*member.Role != entities.RoleEditor && *member.Role != entities.RoleViewer) {
+ if member.Role == nil || (*member.Role != entities.RoleExecutor && *member.Role != entities.RoleViewer) {
c.JSON(utils.ErrorStatusCodes[utils.ErrInvalidRole], presenter.CreateErrorResponse(utils.ErrInvalidRole))
return
}
diff --git a/chaoscenter/authentication/api/handlers/rest/project_handler_test.go b/chaoscenter/authentication/api/handlers/rest/project_handler_test.go
index dea26203fa8..e801241ffc7 100644
--- a/chaoscenter/authentication/api/handlers/rest/project_handler_test.go
+++ b/chaoscenter/authentication/api/handlers/rest/project_handler_test.go
@@ -203,7 +203,7 @@ func TestGetProject(t *testing.T) {
Value: primitive.D{
primitive.E{
Key: "$in",
- Value: []string{"Owner", "Viewer", "Editor"},
+ Value: []string{"Owner", "Viewer", "Executor"},
},
},
},
diff --git a/chaoscenter/authentication/pkg/entities/project.go b/chaoscenter/authentication/pkg/entities/project.go
index 3dda69124d5..6aa35fe073f 100644
--- a/chaoscenter/authentication/pkg/entities/project.go
+++ b/chaoscenter/authentication/pkg/entities/project.go
@@ -108,9 +108,9 @@ func (member *Member) GetMemberOutput() *Member {
type MemberRole string
const (
- RoleOwner MemberRole = "Owner"
- RoleEditor MemberRole = "Editor"
- RoleViewer MemberRole = "Viewer"
+ RoleOwner MemberRole = "Owner"
+ RoleExecutor MemberRole = "Executor"
+ RoleViewer MemberRole = "Viewer"
)
// Invitation defines the type of the invitation that is sent by the Owner of the project to other users
diff --git a/chaoscenter/authentication/pkg/validations/roles.go b/chaoscenter/authentication/pkg/validations/roles.go
index eb5c8471586..17319ef1f57 100644
--- a/chaoscenter/authentication/pkg/validations/roles.go
+++ b/chaoscenter/authentication/pkg/validations/roles.go
@@ -4,11 +4,11 @@ import "github.com/litmuschaos/litmus/chaoscenter/authentication/pkg/entities"
var MutationRbacRules = map[string][]string{
"sendInvitation": {string(entities.RoleOwner)},
- "acceptInvitation": {string(entities.RoleViewer), string(entities.RoleEditor)},
+ "acceptInvitation": {string(entities.RoleViewer), string(entities.RoleExecutor)},
"declineInvitation": {string(entities.RoleViewer),
- string(entities.RoleEditor)},
+ string(entities.RoleExecutor)},
"removeInvitation": {string(entities.RoleOwner)},
- "leaveProject": {string(entities.RoleViewer), string(entities.RoleEditor)},
+ "leaveProject": {string(entities.RoleViewer), string(entities.RoleExecutor)},
"updateProjectName": {string(entities.RoleOwner)},
- "getProject": {string(entities.RoleOwner), string(entities.RoleViewer), string(entities.RoleEditor)},
+ "getProject": {string(entities.RoleOwner), string(entities.RoleViewer), string(entities.RoleExecutor)},
}
diff --git a/chaoscenter/graphql/definitions/shared/project.graphqls b/chaoscenter/graphql/definitions/shared/project.graphqls
index b2475aeb677..46ada7318e9 100644
--- a/chaoscenter/graphql/definitions/shared/project.graphqls
+++ b/chaoscenter/graphql/definitions/shared/project.graphqls
@@ -5,6 +5,6 @@ enum Invitation {
enum MemberRole {
Owner
- Editor
+ Executor
Viewer
}
diff --git a/chaoscenter/graphql/server/graph/generated/generated.go b/chaoscenter/graphql/server/graph/generated/generated.go
index 9f5bc41c287..932e018a654 100644
--- a/chaoscenter/graphql/server/graph/generated/generated.go
+++ b/chaoscenter/graphql/server/graph/generated/generated.go
@@ -8173,7 +8173,7 @@ extend type Mutation {
enum MemberRole {
Owner
- Editor
+ Executor
Viewer
}
`, BuiltIn: false},
diff --git a/chaoscenter/graphql/server/graph/model/models_gen.go b/chaoscenter/graphql/server/graph/model/models_gen.go
index d2e2240be93..b4173ea00b2 100644
--- a/chaoscenter/graphql/server/graph/model/models_gen.go
+++ b/chaoscenter/graphql/server/graph/model/models_gen.go
@@ -2525,20 +2525,20 @@ func (e Invitation) MarshalGQL(w io.Writer) {
type MemberRole string
const (
- MemberRoleOwner MemberRole = "Owner"
- MemberRoleEditor MemberRole = "Editor"
- MemberRoleViewer MemberRole = "Viewer"
+ MemberRoleOwner MemberRole = "Owner"
+ MemberRoleExecutor MemberRole = "Executor"
+ MemberRoleViewer MemberRole = "Viewer"
)
var AllMemberRole = []MemberRole{
MemberRoleOwner,
- MemberRoleEditor,
+ MemberRoleExecutor,
MemberRoleViewer,
}
func (e MemberRole) IsValid() bool {
switch e {
- case MemberRoleOwner, MemberRoleEditor, MemberRoleViewer:
+ case MemberRoleOwner, MemberRoleExecutor, MemberRoleViewer:
return true
}
return false
diff --git a/chaoscenter/graphql/server/pkg/authorization/roles.go b/chaoscenter/graphql/server/pkg/authorization/roles.go
index ab19e1467c4..5ec29f6544b 100644
--- a/chaoscenter/graphql/server/pkg/authorization/roles.go
+++ b/chaoscenter/graphql/server/pkg/authorization/roles.go
@@ -56,53 +56,53 @@ const (
ListEnvironments RoleQuery = "ListEnvironments"
// Probe
- AddProbe RoleQuery = "AddProbe"
- DeleteProbe RoleQuery = "DeleteProbe"
- UpdateProbe RoleQuery = "UpdateProbe"
- GetProbe RoleQuery = "GetProbe"
- ListProbes RoleQuery = "ListProbes"
- MemberRoleOwnerString = string(model.MemberRoleOwner)
- MemberRoleEditorString = string(model.MemberRoleEditor)
- MemberRoleViewerString = string(model.MemberRoleViewer)
+ AddProbe RoleQuery = "AddProbe"
+ DeleteProbe RoleQuery = "DeleteProbe"
+ UpdateProbe RoleQuery = "UpdateProbe"
+ GetProbe RoleQuery = "GetProbe"
+ ListProbes RoleQuery = "ListProbes"
+ MemberRoleOwnerString = string(model.MemberRoleOwner)
+ MemberRoleExecutorString = string(model.MemberRoleExecutor)
+ MemberRoleViewerString = string(model.MemberRoleViewer)
)
var MutationRbacRules = map[RoleQuery][]string{
- UserInfrastructureReg: {MemberRoleOwnerString, MemberRoleEditorString},
- CreateChaosExperiment: {MemberRoleOwnerString, MemberRoleEditorString},
- ReRunChaosExperiment: {MemberRoleOwnerString, MemberRoleEditorString},
- DeleteChaosExperiment: {MemberRoleOwnerString, MemberRoleEditorString},
- StopChaosExperiment: {MemberRoleOwnerString, MemberRoleEditorString},
- AddChaosHub: {MemberRoleOwnerString, MemberRoleEditorString},
- UpdateChaosExperiment: {MemberRoleOwnerString, MemberRoleEditorString},
- DeleteInfrastructures: {MemberRoleOwnerString, MemberRoleEditorString},
- UpdateChaosHub: {MemberRoleOwnerString, MemberRoleEditorString},
- DeleteChaosHub: {MemberRoleOwnerString, MemberRoleEditorString},
+ UserInfrastructureReg: {MemberRoleOwnerString},
+ CreateChaosExperiment: {MemberRoleOwnerString},
+ ReRunChaosExperiment: {MemberRoleOwnerString, MemberRoleExecutorString},
+ DeleteChaosExperiment: {MemberRoleOwnerString},
+ StopChaosExperiment: {MemberRoleOwnerString, MemberRoleExecutorString},
+ AddChaosHub: {MemberRoleOwnerString},
+ UpdateChaosExperiment: {MemberRoleOwnerString},
+ DeleteInfrastructures: {MemberRoleOwnerString},
+ UpdateChaosHub: {MemberRoleOwnerString},
+ DeleteChaosHub: {MemberRoleOwnerString},
EnableGitOps: {MemberRoleOwnerString},
DisableGitOps: {MemberRoleOwnerString},
UpdateGitOps: {MemberRoleOwnerString},
- ListWorkflowRuns: {MemberRoleOwnerString, MemberRoleEditorString, MemberRoleViewerString},
- GetWorkflowRun: {MemberRoleOwnerString, MemberRoleEditorString, MemberRoleViewerString},
- ListInfrastructures: {MemberRoleOwnerString, MemberRoleEditorString, MemberRoleViewerString},
- GetInfrastructure: {MemberRoleOwnerString, MemberRoleEditorString, MemberRoleViewerString},
- GetManifest: {MemberRoleOwnerString, MemberRoleEditorString},
- GetInfraDetails: {MemberRoleOwnerString, MemberRoleEditorString},
- ListCharts: {MemberRoleOwnerString, MemberRoleEditorString, MemberRoleViewerString},
- ListExperiment: {MemberRoleOwnerString, MemberRoleEditorString, MemberRoleViewerString},
- SaveChaosHub: {MemberRoleOwnerString, MemberRoleEditorString},
+ ListWorkflowRuns: {MemberRoleOwnerString, MemberRoleExecutorString, MemberRoleViewerString},
+ GetWorkflowRun: {MemberRoleOwnerString, MemberRoleExecutorString, MemberRoleViewerString},
+ ListInfrastructures: {MemberRoleOwnerString, MemberRoleExecutorString, MemberRoleViewerString},
+ GetInfrastructure: {MemberRoleOwnerString, MemberRoleExecutorString, MemberRoleViewerString},
+ GetManifest: {MemberRoleOwnerString, MemberRoleExecutorString},
+ GetInfraDetails: {MemberRoleOwnerString, MemberRoleExecutorString},
+ ListCharts: {MemberRoleOwnerString, MemberRoleExecutorString, MemberRoleViewerString},
+ ListExperiment: {MemberRoleOwnerString, MemberRoleExecutorString, MemberRoleViewerString},
+ SaveChaosHub: {MemberRoleOwnerString},
CreateImageRegistry: {MemberRoleOwnerString},
UpdateImageRegistry: {MemberRoleOwnerString},
DeleteImageRegistry: {MemberRoleOwnerString},
GetGitOpsDetails: {MemberRoleOwnerString},
ListImageRegistry: {MemberRoleOwnerString},
GetImageRegistry: {MemberRoleOwnerString},
- CreateEnvironment: {MemberRoleOwnerString, MemberRoleEditorString},
- UpdateEnvironment: {MemberRoleOwnerString, MemberRoleEditorString},
- DeleteEnvironment: {MemberRoleOwnerString, MemberRoleEditorString},
- GetEnvironment: {MemberRoleOwnerString, MemberRoleEditorString, MemberRoleViewerString},
- ListEnvironments: {MemberRoleOwnerString, MemberRoleEditorString, MemberRoleViewerString},
- AddProbe: {MemberRoleOwnerString, MemberRoleEditorString},
- UpdateProbe: {MemberRoleOwnerString, MemberRoleEditorString},
- GetProbe: {MemberRoleOwnerString, MemberRoleEditorString, MemberRoleViewerString},
- ListProbes: {MemberRoleOwnerString, MemberRoleEditorString, MemberRoleViewerString},
- DeleteProbe: {MemberRoleOwnerString, MemberRoleEditorString},
+ CreateEnvironment: {MemberRoleOwnerString},
+ UpdateEnvironment: {MemberRoleOwnerString},
+ DeleteEnvironment: {MemberRoleOwnerString},
+ GetEnvironment: {MemberRoleOwnerString, MemberRoleExecutorString, MemberRoleViewerString},
+ ListEnvironments: {MemberRoleOwnerString, MemberRoleExecutorString, MemberRoleViewerString},
+ AddProbe: {MemberRoleOwnerString},
+ UpdateProbe: {MemberRoleOwnerString},
+ GetProbe: {MemberRoleOwnerString, MemberRoleExecutorString, MemberRoleViewerString},
+ ListProbes: {MemberRoleOwnerString, MemberRoleExecutorString, MemberRoleViewerString},
+ DeleteProbe: {MemberRoleOwnerString},
}
diff --git a/chaoscenter/graphql/server/pkg/database/mongodb/project/schema.go b/chaoscenter/graphql/server/pkg/database/mongodb/project/schema.go
index d0882f2d22a..9ae6c0652ae 100644
--- a/chaoscenter/graphql/server/pkg/database/mongodb/project/schema.go
+++ b/chaoscenter/graphql/server/pkg/database/mongodb/project/schema.go
@@ -23,9 +23,9 @@ type Member struct {
type MemberRole string
const (
- RoleOwner MemberRole = "Owner"
- RoleEditor MemberRole = "Editor"
- RoleViewer MemberRole = "Viewer"
+ RoleOwner MemberRole = "Owner"
+ RoleExecutor MemberRole = "Executor"
+ RoleViewer MemberRole = "Viewer"
)
// Invitation defines the type of the invitation that is sent by the Owner of the project to other users
diff --git a/chaoscenter/web/src/api/auth/hooks/useSendInvitationMutation.ts b/chaoscenter/web/src/api/auth/hooks/useSendInvitationMutation.ts
index 6957bf81f51..b61645a8435 100644
--- a/chaoscenter/web/src/api/auth/hooks/useSendInvitationMutation.ts
+++ b/chaoscenter/web/src/api/auth/hooks/useSendInvitationMutation.ts
@@ -8,7 +8,7 @@ import { fetcher, FetcherOptions } from 'services/fetcher';
export type SendInvitationRequestBody = {
projectID: string;
- role: 'Editor' | 'Owner' | 'Viewer';
+ role: 'Executor' | 'Owner' | 'Viewer';
userID: string;
};
diff --git a/chaoscenter/web/src/api/auth/schemas/GetInvitationResponse.ts b/chaoscenter/web/src/api/auth/schemas/GetInvitationResponse.ts
index 47d86c0515b..8c87d2993ac 100644
--- a/chaoscenter/web/src/api/auth/schemas/GetInvitationResponse.ts
+++ b/chaoscenter/web/src/api/auth/schemas/GetInvitationResponse.ts
@@ -4,7 +4,7 @@
import type { ProjectMember } from '../schemas/ProjectMember';
export interface GetInvitationResponse {
- invitationRole: 'Editor' | 'Owner' | 'Viewer';
+ invitationRole: 'Executor' | 'Owner' | 'Viewer';
projectID: string;
projectName: string;
projectOwner: ProjectMember;
diff --git a/chaoscenter/web/src/api/auth/schemas/ProjectMember.ts b/chaoscenter/web/src/api/auth/schemas/ProjectMember.ts
index 25d32ff5069..54385b7d383 100644
--- a/chaoscenter/web/src/api/auth/schemas/ProjectMember.ts
+++ b/chaoscenter/web/src/api/auth/schemas/ProjectMember.ts
@@ -7,7 +7,7 @@ export interface ProjectMember {
invitation: 'Accepted' | 'Declined' | 'Exited' | 'Pending';
joinedAt?: string;
name?: string;
- role: 'Editor' | 'Owner' | 'Viewer';
+ role: 'Executor' | 'Owner' | 'Viewer';
userID: string;
username: string;
}
diff --git a/chaoscenter/web/src/components/ExperimentActionButtons/ExperimentActionButtons.tsx b/chaoscenter/web/src/components/ExperimentActionButtons/ExperimentActionButtons.tsx
index 29fdd9fdab1..e97e63bc090 100644
--- a/chaoscenter/web/src/components/ExperimentActionButtons/ExperimentActionButtons.tsx
+++ b/chaoscenter/web/src/components/ExperimentActionButtons/ExperimentActionButtons.tsx
@@ -89,7 +89,7 @@ export const RunExperimentButton = ({
icon={'play'}
withoutCurrentColor
variation={ButtonVariation.ICON}
- permission={PermissionGroup.EDITOR}
+ permission={PermissionGroup.Executor}
onClick={() => {
runChaosExperimentMutation({
variables: { projectID: scope.projectID, experimentID: experimentID }
@@ -161,7 +161,7 @@ export const StopExperimentButton = ({
isDark: true,
...tooltipProps
}}
- permission={PermissionGroup.EDITOR}
+ permission={PermissionGroup.Executor}
variation={ButtonVariation.ICON}
icon={'stop'}
onClick={openStopExperimentDialog}
@@ -240,7 +240,7 @@ export const StopExperimentRunButton = ({
}}
variation={ButtonVariation.ICON}
icon={'stop'}
- permission={PermissionGroup.EDITOR}
+ permission={PermissionGroup.Executor}
onClick={openStopExperimentRunDialog}
/>
@@ -271,7 +271,7 @@ export const EditExperimentButton = ({ experimentID, tooltipProps }: ActionButto
search: `tab=${StudioTabs.BUILDER}`
});
}}
- permission={PermissionGroup.EDITOR}
+ permission={PermissionGroup.OWNER}
/>
);
@@ -297,7 +297,7 @@ export const CloneExperimentButton = ({ experimentID, tooltipProps }: ActionButt
pathname: paths.toCloneExperiment({ experimentKey: experimentID })
});
}}
- permission={PermissionGroup.EDITOR}
+ permission={PermissionGroup.Executor}
/>
);
@@ -425,7 +425,7 @@ export const EnableDisableCronButton = ({
variation={ButtonVariation.ICON}
icon={'time'}
onClick={openCronEnableDisableDialog}
- permission={PermissionGroup.EDITOR}
+ permission={PermissionGroup.Executor}
/>
{cronEnableDisableDialog}
diff --git a/chaoscenter/web/src/components/NewExperimentButton/NewExperimentButton.tsx b/chaoscenter/web/src/components/NewExperimentButton/NewExperimentButton.tsx
index b8537938ac4..cba6ae7c015 100644
--- a/chaoscenter/web/src/components/NewExperimentButton/NewExperimentButton.tsx
+++ b/chaoscenter/web/src/components/NewExperimentButton/NewExperimentButton.tsx
@@ -18,7 +18,7 @@ export default function NewExperimentButton({ disabled }: { disabled?: boolean }
{
e.stopPropagation(); // Prevents the card from being clicked
launchExperiment();
diff --git a/chaoscenter/web/src/models/rbac.ts b/chaoscenter/web/src/models/rbac.ts
index 46ffce9fee3..02ffbbb185a 100644
--- a/chaoscenter/web/src/models/rbac.ts
+++ b/chaoscenter/web/src/models/rbac.ts
@@ -1,6 +1,6 @@
export enum PermissionGroup {
OWNER = 'Owner',
- EDITOR = 'Editor',
+ Executor = 'Executor',
VIEWER = 'Viewer'
}
diff --git a/chaoscenter/web/src/strings/strings.en.yaml b/chaoscenter/web/src/strings/strings.en.yaml
index 80fff0b50af..e9061665844 100644
--- a/chaoscenter/web/src/strings/strings.en.yaml
+++ b/chaoscenter/web/src/strings/strings.en.yaml
@@ -1,4 +1,5 @@
404Error: Oops, we could not find this page.
+Executor: Executor
FRI: FRI
MON: MON
NASlash: N/A
@@ -306,7 +307,6 @@ editSameExperimentDescription: >-
editSameExperimentTitle: Edit on the existing Experiment
editYaml: Edit Yaml
editingChaosHub: Editing ChaosHub
-editor: Editor
effect: Effect
email: Email
emailIsRequired: Email is a required field
diff --git a/chaoscenter/web/src/strings/types.ts b/chaoscenter/web/src/strings/types.ts
index 9db3a837ac8..ce63116c0f6 100644
--- a/chaoscenter/web/src/strings/types.ts
+++ b/chaoscenter/web/src/strings/types.ts
@@ -6,6 +6,7 @@ export type PrimitiveObject = Record = ({
hubID.current = chaosHub.id;
syncChaosHubMutation({ variables: { projectID: scope.projectID, id: chaosHub.id } });
}}
- permission={PermissionGroup.EDITOR}
+ permission={PermissionGroup.Executor}
/>
)}
@@ -125,7 +125,7 @@ export const ChaosHubMenuView: React.FC = ({
setSelectedHubDetails(chaosHub);
setEditHubModal(true);
}}
- permission={PermissionGroup.EDITOR}
+ permission={PermissionGroup.OWNER}
/>
)}
@@ -139,7 +139,7 @@ export const ChaosHubMenuView: React.FC = ({
onClick={() => {
deleteChaosHubMutation({ variables: { projectID: scope.projectID, hubID: chaosHub.id } });
}}
- permission={PermissionGroup.EDITOR}
+ permission={PermissionGroup.OWNER}
/>
)}
diff --git a/chaoscenter/web/src/views/ChaosHubs/AddHubModal.tsx b/chaoscenter/web/src/views/ChaosHubs/AddHubModal.tsx
index eaddafcf587..940a81cc90c 100644
--- a/chaoscenter/web/src/views/ChaosHubs/AddHubModal.tsx
+++ b/chaoscenter/web/src/views/ChaosHubs/AddHubModal.tsx
@@ -28,7 +28,7 @@ function AddHubModal({ listChaosHubRefetch, disabled }: AddHubModalProviderProps
icon="plus"
onClick={() => open()}
disabled={disabled}
- permission={PermissionGroup.EDITOR}
+ permission={PermissionGroup.OWNER}
/>
{isOpen && (