-
Notifications
You must be signed in to change notification settings - Fork 4
/
role.go
219 lines (195 loc) · 11.5 KB
/
role.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
package moysklad
import (
"github.com/google/uuid"
)
// Role Пользовательская роль.
// Ключевое слово: role
// Документация МойСклад: https://dev.moysklad.ru/doc/api/remap/1.2/dictionaries/#suschnosti-pol-zowatel-skie-roli
type Role struct {
ID *uuid.UUID `json:"id,omitempty"` // ID пользовательской роли
Meta *Meta `json:"meta,omitempty"` // Метаданные пользовательской роли
Name *string `json:"name,omitempty"` // Наименование пользовательской роли
Permissions *EmployeePermissions `json:"permissions,omitempty"` // Список пермиссий
}
func (r Role) String() string {
return Stringify(r)
}
func (r Role) MetaType() MetaType {
return MetaTypeRole
}
type PermissionValue string
const (
PermissionNo PermissionValue = "NO" // Ни на кого
PermissionOwn PermissionValue = "OWN" // Только свои
PermissionOwnShared PermissionValue = "OWN_SHARED" // Свои и общие
PermissionOwnGroup PermissionValue = "OWN_GROUP" // Свои и отдела
PermissionOwnGroupShared PermissionValue = "OWN_GROUP_SHARED" // Свои, отдела и общие
PermissionAll PermissionValue = "ALL" // Все
)
type ScriptPermissionValue string
const (
ScriptPermissionValueNo ScriptPermissionValue = "NO" // Нет прав ни на какие задачи
ScriptPermissionValueAuthor ScriptPermissionValue = "AUTHOR" // Созданные пользователем
ScriptPermissionValueAssignee ScriptPermissionValue = "ASSIGNEE" // Назначенные
ScriptPermissionValueOAuthorOrAssignee ScriptPermissionValue = "AUTHOR_OR_ASSIGNEE" // Созданные пользователем и назначенные ему
ScriptPermissionValueAll ScriptPermissionValue = "ALL" // Возможность совершать действие над любыми задачами
)
type ViewCreateDeletePermission struct {
View PermissionValue `json:"view"`
Create PermissionValue `json:"create"`
Delete PermissionValue `json:"delete"`
}
type ViewPrintPermission struct {
View PermissionValue `json:"view"`
Print PermissionValue `json:"print"`
}
type BasePermission struct {
View PermissionValue `json:"view"`
Create PermissionValue `json:"create"`
Update PermissionValue `json:"update"`
Delete PermissionValue `json:"delete"`
}
type DictionaryPermission struct {
View PermissionValue `json:"view"`
Create PermissionValue `json:"create"`
Update PermissionValue `json:"update"`
Delete PermissionValue `json:"delete"`
Print PermissionValue `json:"print"`
}
type OperationPermission struct {
View PermissionValue `json:"view"`
Create PermissionValue `json:"create"`
Update PermissionValue `json:"update"`
Delete PermissionValue `json:"delete"`
Approve PermissionValue `json:"approve"`
Print PermissionValue `json:"print"`
}
type ScriptPermission struct {
View ScriptPermissionValue `json:"view"`
Create ScriptPermissionValue `json:"create"`
Update ScriptPermissionValue `json:"update"`
Delete ScriptPermissionValue `json:"delete"`
Done ScriptPermissionValue `json:"done"`
}
type EmployeePermissions struct {
ProcessingOrder OperationPermission `json:"processingOrder"`
CustomerOrder OperationPermission `json:"customerOrder"`
BonusTransaction OperationPermission `json:"bonusTransaction"`
SalesReturn OperationPermission `json:"salesReturn"`
PriceList OperationPermission `json:"priceList"`
Enter OperationPermission `json:"enter"`
RetailSalesReturn OperationPermission `json:"retailSalesReturn"`
RetailDrawerCashOut OperationPermission `json:"retailDrawerCashOut"`
RetailDrawerCashIn OperationPermission `json:"retailDrawerCashIn"`
RetailDemand OperationPermission `json:"retailDemand"`
CommissionReportOut OperationPermission `json:"commissionReportOut"`
PrepaymentReturn OperationPermission `json:"prepaymentReturn"`
PurchaseReturn OperationPermission `json:"purchaseReturn"`
PurchaseOrder OperationPermission `json:"purchaseOrder"`
Supply OperationPermission `json:"supply"`
Demand OperationPermission `json:"demand"`
CommissionReportIn OperationPermission `json:"commissionReportIn"`
Prepayment OperationPermission `json:"prepayment"`
PaymentOut OperationPermission `json:"paymentOut"`
PaymentIn OperationPermission `json:"paymentIn"`
Move OperationPermission `json:"move"`
Loss OperationPermission `json:"loss"`
InvoiceOut OperationPermission `json:"invoiceOut"`
InvoiceIn OperationPermission `json:"invoiceIn"`
CashOut OperationPermission `json:"cashOut"`
InternalOrder OperationPermission `json:"internalOrder"`
CashIn OperationPermission `json:"cashIn"`
FactureOut OperationPermission `json:"factureOut"`
FactureIn OperationPermission `json:"factureIn"`
Inventory DictionaryPermission `json:"inventory"`
AccountAdjustment DictionaryPermission `json:"accountAdjustment"`
Good DictionaryPermission `json:"good"`
UtilizationReport DictionaryPermission `json:"utilizationReport"`
CashBoxAdjustment DictionaryPermission `json:"cashboxAdjustment"`
RemainsOrder DictionaryPermission `json:"remainsOrder"`
RemarkingOrder DictionaryPermission `json:"remarkingOrder"`
Company DictionaryPermission `json:"company"`
Contract DictionaryPermission `json:"contract"`
CounterpartyAdjustment DictionaryPermission `json:"counterpartyAdjustment"`
RetailShift DictionaryPermission `json:"retailShift"`
CRPTCancellation DictionaryPermission `json:"crptCancellation"`
CRPTPackageCreation DictionaryPermission `json:"crptPackageCreation"`
CRPTPackageDisaggregation DictionaryPermission `json:"crptPackageDisaggregation"`
CRPTPackageItemRemoval DictionaryPermission `json:"crptPackageItemRemoval"`
EnrollOrder DictionaryPermission `json:"enrollOrder"`
AtkAggregation DictionaryPermission `json:"atkAggregation"`
RetireOrder DictionaryPermission `json:"retireOrder"`
Script ScriptPermission `json:"script"`
EmissionOrder DictionaryPermission `json:"emissionOrder"`
Currency BasePermission `json:"currency"`
MyCompany BasePermission `json:"myCompany"`
Employee BasePermission `json:"employee"`
Warehouse BasePermission `json:"warehouse"`
Country BasePermission `json:"country"`
Uom BasePermission `json:"uom"`
RetailStore BasePermission `json:"retailStore"`
Project BasePermission `json:"project"`
ProcessingPlan BasePermission `json:"processingPlan"`
CustomEntity BasePermission `json:"customEntity"`
Processing BasePermission `json:"processing"`
GTINList ViewCreateDeletePermission `json:"GTINList"`
TrackingCodeList ViewPrintPermission `json:"trackingCodeList"`
ViewCashFlow bool `json:"viewCashFlow"`
SendEmail bool `json:"sendEmail"`
ViewMoneyDashboard bool `json:"viewMoneyDashboard"`
ViewDashboard bool `json:"viewDashboard"`
ViewCustomerBalanceList bool `json:"viewCustomerBalanceList"`
ViewCompanyCRM bool `json:"viewCompanyCRM"`
ViewCommissionGoods bool `json:"viewCommissionGoods"`
ViewProfitAndLoss bool `json:"viewProfitAndLoss"`
ViewPurchaseFunnel bool `json:"viewPurchaseFunnel"`
ViewRecycleBin bool `json:"viewRecycleBin"`
ViewSaleProfit bool `json:"viewSaleProfit"`
ViewAudit bool `json:"viewAudit"`
SubscriptionControl bool `json:"subscriptionControl"`
ViewProductCostAndProfit bool `json:"viewProductCostAndProfit"`
RestoreFromRecycleBin bool `json:"restoreFromRecycleBin"`
PurchaseControl bool `json:"purchaseControl"`
OnlineShops bool `json:"onlineShops"`
ListenCalls bool `json:"listenCalls"`
ImportData bool `json:"importData"`
ExportData bool `json:"exportData"`
ViewSerialNumbers bool `json:"viewSerialNumbers"`
EditDocumentsOfRestrictedPeriod bool `json:"editDocumentsOfRestrictedPeriod"`
EditDocumentTemplates bool `json:"editDocumentTemplates"`
EditCurrencyRateOfDocument bool `json:"editCurrencyRateOfDocument"`
ViewStockReport bool `json:"viewStockReport"`
ViewTurnover bool `json:"viewTurnover"`
ApiRequest bool `json:"apiRequest"`
DeleteFromRecycleBin bool `json:"deleteFromRecycleBin"`
}
// AdminRole Роль администратора
type AdminRole struct {
Meta Meta `json:"meta,omitempty"`
}
func (r AdminRole) String() string {
return Stringify(r)
}
func (r AdminRole) MetaType() MetaType {
return MetaTypeSystemRole
}
// IndividualRole Индивидуальная роль
type IndividualRole struct {
Meta Meta `json:"meta,omitempty"`
}
func (r IndividualRole) String() string {
return Stringify(r)
}
func (r IndividualRole) MetaType() MetaType {
return MetaTypeIndividualRole
}
// CashierRole Роль кассира
type CashierRole struct {
Meta Meta `json:"meta,omitempty"`
}
func (r CashierRole) String() string {
return Stringify(r)
}
func (r CashierRole) MetaType() MetaType {
return MetaTypeSystemRole
}