1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(
18 Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, Default,
19)]
20pub enum Permission {
21 #[serde(rename = "group_view")]
22 #[default]
23 GroupView,
24 #[serde(rename = "group_edit")]
25 GroupEdit,
26 #[serde(rename = "group_delete")]
27 GroupDelete,
28 #[serde(rename = "repo_view")]
29 RepoView,
30 #[serde(rename = "repo_edit")]
31 RepoEdit,
32 #[serde(rename = "repo_delete")]
33 RepoDelete,
34 #[serde(rename = "repo_push")]
35 RepoPush,
36 #[serde(rename = "repo_report_commit_check")]
37 RepoReportCommitCheck,
38 #[serde(rename = "user_view")]
39 UserView,
40 #[serde(rename = "user_edit")]
41 UserEdit,
42 #[serde(rename = "user_delete")]
43 UserDelete,
44 #[serde(rename = "user_edit_admin")]
45 UserEditAdmin,
46 #[serde(rename = "service_account_view")]
47 ServiceAccountView,
48 #[serde(rename = "service_account_edit")]
49 ServiceAccountEdit,
50 #[serde(rename = "service_account_delete")]
51 ServiceAccountDelete,
52 #[serde(rename = "service_view")]
53 ServiceView,
54 #[serde(rename = "service_edit")]
55 ServiceEdit,
56 #[serde(rename = "service_delete")]
57 ServiceDelete,
58 #[serde(rename = "service_edit_admin")]
59 ServiceEditAdmin,
60 #[serde(rename = "action_view")]
61 ActionView,
62 #[serde(rename = "action_edit")]
63 ActionEdit,
64 #[serde(rename = "action_delete")]
65 ActionDelete,
66 #[serde(rename = "action_execute")]
67 ActionExecute,
68 #[serde(rename = "variable_view")]
69 VariableView,
70 #[serde(rename = "variable_edit")]
71 VariableEdit,
72 #[serde(rename = "variable_delete")]
73 VariableDelete,
74 #[serde(rename = "variable_access")]
75 VariableAccess,
76 #[serde(rename = "connector_view")]
77 ConnectorView,
78 #[serde(rename = "connector_edit")]
79 ConnectorEdit,
80 #[serde(rename = "connector_delete")]
81 ConnectorDelete,
82 #[serde(rename = "connector_access")]
83 ConnectorAccess,
84 #[serde(rename = "template_view")]
85 TemplateView,
86 #[serde(rename = "template_edit")]
87 TemplateEdit,
88 #[serde(rename = "template_delete")]
89 TemplateDelete,
90 #[serde(rename = "template_access")]
91 TemplateAccess,
92 #[serde(rename = "runner_view")]
93 RunnerView,
94 #[serde(rename = "runner_add")]
95 RunnerAdd,
96 #[serde(rename = "runner_delete")]
97 RunnerDelete,
98 #[serde(rename = "runner_edit")]
99 RunnerEdit,
100 #[serde(rename = "runner_access")]
101 RunnerAccess,
102}
103
104impl std::fmt::Display for Permission {
105 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
106 match self {
107 Self::GroupView => write!(f, "group_view"),
108 Self::GroupEdit => write!(f, "group_edit"),
109 Self::GroupDelete => write!(f, "group_delete"),
110 Self::RepoView => write!(f, "repo_view"),
111 Self::RepoEdit => write!(f, "repo_edit"),
112 Self::RepoDelete => write!(f, "repo_delete"),
113 Self::RepoPush => write!(f, "repo_push"),
114 Self::RepoReportCommitCheck => write!(f, "repo_report_commit_check"),
115 Self::UserView => write!(f, "user_view"),
116 Self::UserEdit => write!(f, "user_edit"),
117 Self::UserDelete => write!(f, "user_delete"),
118 Self::UserEditAdmin => write!(f, "user_edit_admin"),
119 Self::ServiceAccountView => write!(f, "service_account_view"),
120 Self::ServiceAccountEdit => write!(f, "service_account_edit"),
121 Self::ServiceAccountDelete => write!(f, "service_account_delete"),
122 Self::ServiceView => write!(f, "service_view"),
123 Self::ServiceEdit => write!(f, "service_edit"),
124 Self::ServiceDelete => write!(f, "service_delete"),
125 Self::ServiceEditAdmin => write!(f, "service_edit_admin"),
126 Self::ActionView => write!(f, "action_view"),
127 Self::ActionEdit => write!(f, "action_edit"),
128 Self::ActionDelete => write!(f, "action_delete"),
129 Self::ActionExecute => write!(f, "action_execute"),
130 Self::VariableView => write!(f, "variable_view"),
131 Self::VariableEdit => write!(f, "variable_edit"),
132 Self::VariableDelete => write!(f, "variable_delete"),
133 Self::VariableAccess => write!(f, "variable_access"),
134 Self::ConnectorView => write!(f, "connector_view"),
135 Self::ConnectorEdit => write!(f, "connector_edit"),
136 Self::ConnectorDelete => write!(f, "connector_delete"),
137 Self::ConnectorAccess => write!(f, "connector_access"),
138 Self::TemplateView => write!(f, "template_view"),
139 Self::TemplateEdit => write!(f, "template_edit"),
140 Self::TemplateDelete => write!(f, "template_delete"),
141 Self::TemplateAccess => write!(f, "template_access"),
142 Self::RunnerView => write!(f, "runner_view"),
143 Self::RunnerAdd => write!(f, "runner_add"),
144 Self::RunnerDelete => write!(f, "runner_delete"),
145 Self::RunnerEdit => write!(f, "runner_edit"),
146 Self::RunnerAccess => write!(f, "runner_access"),
147 }
148 }
149}