|
25 | 25 | import lombok.Getter;
|
26 | 26 | import lombok.experimental.Accessors;
|
27 | 27 |
|
| 28 | +import java.util.Map; |
| 29 | +import java.util.concurrent.ConcurrentSkipListMap; |
| 30 | + |
28 | 31 | /**
|
29 | 32 | * Возможные права роли
|
30 | 33 | */
|
31 | 34 | @AllArgsConstructor
|
32 | 35 | @Getter
|
33 | 36 | public enum RoleRight implements EnumWithValue {
|
34 |
| - VIEW("View"), |
35 |
| - EDIT("Edit"), |
36 |
| - GET("Get"), |
37 |
| - READ("Read"), |
38 |
| - SET("Set"), |
39 |
| - INPUT_BY_STRING("InputByString"), |
40 |
| - UPDATE("Update"), |
41 |
| - USE("Use"), |
42 |
| - INSERT("Insert"), |
43 |
| - MAIN_WINDOW_MODE_NORMAL("MainWindowModeNormal"), |
44 |
| - MAIN_WINDOW_MODE_WORKPLACE("MainWindowModeWorkplace"), |
45 |
| - MAIN_WINDOW_MODE_EMBEDDED_WORKPLACE("MainWindowModeEmbeddedWorkplace"), |
46 |
| - MAIN_WINDOW_MODE_FULLSCREEN_WORKPLACE("MainWindowModeFullscreenWorkplace"), |
47 |
| - MAIN_WINDOW_MODE_KIOSK("MainWindowModeKiosk"), |
48 |
| - ANALYTICS_SYSTEM_CLIENT("AnalyticsSystemClient"), |
49 |
| - ADMINISTRATION("Administration"), |
50 |
| - DATA_ADMINISTRATION("DataAdministration"), |
51 |
| - UPDATE_DATA_BASE_CONFIGURATION("UpdateDataBaseConfiguration"), |
52 |
| - EXCLUSIVE_MODE("ExclusiveMode"), |
53 |
| - ACTIVE_USERS("ActiveUsers"), |
54 |
| - EVENT_LOG("EventLog"), |
55 |
| - THIN_CLIENT("ThinClient"), |
56 |
| - WEB_CLIENT("WebClient"), |
57 |
| - THICK_CLIENT("ThickClient"), |
58 |
| - EXTERNAL_CONNECTION("ExternalConnection"), |
59 |
| - AUTOMATION("Automation"), |
60 |
| - ALL_FUNCTIONS_MODE("AllFunctionsMode"), |
61 |
| - COLLABORATION_SYSTEM_INFO_BASE_REGISTRATION("CollaborationSystemInfoBaseRegistration"), |
62 |
| - SAVE_USER_DATA("SaveUserData"), |
63 |
| - CONFIGURATION_EXTENSIONS_ADMINISTRATION("ConfigurationExtensionsAdministration"), |
64 |
| - INTERACTIVE_OPEN_EXT_DATA_PROCESSORS("InteractiveOpenExtDataProcessors"), |
65 |
| - INTERACTIVE_OPEN_EXT_REPORTS("InteractiveOpenExtReports"), |
66 |
| - OUTPUT("Output"), |
67 |
| - DELETE("Delete"), |
68 |
| - POSTING("Posting"), |
69 |
| - UNDO_POSTING("UndoPosting"), |
70 |
| - INTERACTIVE_INSERT("InteractiveInsert"), |
71 |
| - INTERACTIVE_DELETE("InteractiveDelete"), |
72 |
| - INTERACTIVE_SET_DELETION_MARK("InteractiveSetDeletionMark"), |
73 |
| - INTERACTIVE_CLEAR_DELETION_MARK("InteractiveClearDeletionMark"), |
74 |
| - INTERACTIVE_DELETE_MARKED("InteractiveDeleteMarked"), |
75 |
| - INTERACTIVE_POSTING("InteractivePosting"), |
76 |
| - INTERACTIVE_POSTING_REGULAR("InteractivePostingRegular"), |
77 |
| - INTERACTIVE_UNDO_POSTING("InteractiveUndoPosting"), |
78 |
| - INTERACTIVE_CHANGE_OF_POSTED("InteractiveChangeOfPosted"), |
79 |
| - INTERACTIVE_DELETE_PREDEFINED_DATA("InteractiveDeletePredefinedData"), |
80 |
| - INTERACTIVE_SET_DELETION_MARK_PREDEFINED_DATA("InteractiveSetDeletionMarkPredefinedData"), |
81 |
| - INTERACTIVE_CLEAR_DELETION_MARK_PREDEFINED_DATA("InteractiveClearDeletionMarkPredefinedData"), |
82 |
| - INTERACTIVE_DELETE_MARKED_PREDEFINED_DATA("InteractiveDeleteMarkedPredefinedData"), |
83 |
| - EXECUTE("Execute"), |
84 |
| - READ_DATA_HISTORY("ReadDataHistory"), |
85 |
| - READ_DATA_HISTORY_OF_MISSING_DATA("ReadDataHistoryOfMissingData"), |
86 |
| - UPDATE_DATA_HISTORY("UpdateDataHistory"), |
87 |
| - UPDATE_DATA_HISTORY_OF_MISSING_DATA("UpdateDataHistoryOfMissingData"), |
88 |
| - UPDATE_DATA_HISTORY_SETTINGS("UpdateDataHistorySettings"), |
89 |
| - UPDATE_DATA_HISTORY_VERSION_COMMENT("UpdateDataHistoryVersionComment"), |
90 |
| - VIEW_DATA_HISTORY("ViewDataHistory"), |
91 |
| - EDIT_DATA_HISTORY_VERSION_COMMENT("EditDataHistoryVersionComment"), |
92 |
| - SWITCH_TO_DATA_HISTORY_VERSION("SwitchToDataHistoryVersion"), |
93 |
| - TOTALS_CONTROL("TotalsControl"), |
94 |
| - MOBILE_CLIENT("MobileClient"), |
95 |
| - INTERACTIVE_ACTIVATE("InteractiveActivate"), |
96 |
| - INTERACTIVE_EXECUTE("InteractiveExecute"), |
97 |
| - TECHNICAL_SPECIALIST_MODE("TechnicalSpecialistMode"), |
98 |
| - INTERACTIVE_START("InteractiveStart"), |
99 |
| - START("Start"), |
100 |
| - STANDARD_AUTHENTICATION_CHANGE("StandardAuthenticationChange"), |
101 |
| - SESSION_STANDARD_AUTHENTICATION_CHANGE("SessionStandardAuthenticationChange"), |
102 |
| - SESSION_OS_AUTHENTICATION_CHANGE("SessionOSAuthenticationChange"), |
103 |
| - EXCLUSIVE_MODE_TERMINATION_AT_SESSION_START("ExclusiveModeTerminationAtSessionStart"), |
104 |
| - UNKNOWN("unknown") { |
| 37 | + READ("Read", "Чтение"), |
| 38 | + INSERT("Insert", "Добавление"), |
| 39 | + UPDATE("Update", "Изменение"), |
| 40 | + DELETE("Delete", "Удаление"), |
| 41 | + POSTING("Posting", "Проведение"), |
| 42 | + UNDO_POSTING("UndoPosting", "ОтменаПроведения"), |
| 43 | + VIEW("View", "Просмотр"), |
| 44 | + INTERACTIVE_INSERT("InteractiveInsert", "ИнтерактивноеДобавление"), |
| 45 | + EDIT("Edit", "Редактирование"), |
| 46 | + INTERACTIVE_DELETE("InteractiveDelete", "ИнтерактивноеУдаление"), |
| 47 | + INTERACTIVE_SET_DELETION_MARK("InteractiveSetDeletionMark", "ИнтерактивнаяПометкаУдаления"), |
| 48 | + INTERACTIVE_CLEAR_DELETION_MARK("InteractiveClearDeletionMark", "ИнтерактивноеСнятиеПометкиУдаления"), |
| 49 | + INTERACTIVE_DELETE_MARKED("InteractiveDeleteMarked", "ИнтерактивноеУдалениеПомеченных"), |
| 50 | + INTERACTIVE_POSTING("InteractivePosting", "ИнтерактивноеПроведение"), |
| 51 | + INTERACTIVE_POSTING_REGULAR("InteractivePostingRegular", "ИнтерактивноеПроведениеНеОперативное"), |
| 52 | + INTERACTIVE_UNDO_POSTING("InteractiveUndoPosting", "ИнтерактивнаяОтменаПроведения"), |
| 53 | + INTERACTIVE_CHANGE_OF_POSTED("InteractiveChangeOfPosted", "ИнтерактивноеИзменениеПроведенных"), |
| 54 | + INPUT_BY_STRING("InputByString", "ВводПоСтроке"), |
| 55 | + TOTALS_CONTROL("TotalsControl", "УправлениеИтогами"), |
| 56 | + USE("Use", "Использование"), |
| 57 | + ADMINISTRATION("Administration", "Администрирование"), |
| 58 | + DATA_ADMINISTRATION("DataAdministration", "АдминистрированиеДанных"), |
| 59 | + EXCLUSIVE_MODE("ExclusiveMode", "МонопольныйРежим"), |
| 60 | + ACTIVE_USERS("ActiveUsers", "АктивныеПользователи"), |
| 61 | + EVENT_LOG("EventLog", "ЖурналРегистрации"), |
| 62 | + EXTERNAL_CONNECTION("ExternalConnection", "ВнешнееСоединение"), |
| 63 | + AUTOMATION("Automation", "Automation"), |
| 64 | + INTERACTIVE_OPEN_EXT_DATA_PROCESSORS("InteractiveOpenExtDataProcessors", "ИнтерактивноеОткрытиеВнешнихОбработок"), |
| 65 | + INTERACTIVE_OPEN_EXT_REPORTS("InteractiveOpenExtReports", "ИнтерактивноеОткрытиеВнешнихОтчетов"), |
| 66 | + GET("Get", "Получение"), |
| 67 | + SET("Set", "Установка"), |
| 68 | + INTERACTIVE_ACTIVATE("InteractiveActivate", "ИнтерактивнаяАктивация"), |
| 69 | + START("Start", "Старт"), |
| 70 | + INTERACTIVE_START("InteractiveStart", "ИнтерактивныйСтарт"), |
| 71 | + EXECUTE("Execute", "Выполнение"), |
| 72 | + INTERACTIVE_EXECUTE("InteractiveExecute", "ИнтерактивноеВыполнение"), |
| 73 | + OUTPUT("Output", "Вывод"), |
| 74 | + UPDATE_DATA_BASE_CONFIGURATION("UpdateDataBaseConfiguration", "ОбновлениеКонфигурацииБазыДанных"), |
| 75 | + THIN_CLIENT("ThinClient", "ТонкийКлиент"), |
| 76 | + WEB_CLIENT("WebClient", "ВебКлиент"), |
| 77 | + THICK_CLIENT("ThickClient", "ТолстыйКлиент"), |
| 78 | + ALL_FUNCTIONS_MODE("AllFunctionsMode", "РежимВсеФункции"), |
| 79 | + SAVE_USER_DATA("SaveUserData", "СохранениеДанныхПользователя"), |
| 80 | + STANDARD_AUTHENTICATION_CHANGE("StandardAuthenticationChange", "ИзменениеСтандартнойАутентификации"), |
| 81 | + SESSION_STANDARD_AUTHENTICATION_CHANGE("SessionStandardAuthenticationChange", |
| 82 | + "ИзменениеСтандартнойАутентификацииСеанса"), |
| 83 | + SESSION_OS_AUTHENTICATION_CHANGE("SessionOSAuthenticationChange", "ИзменениеАутентификацииОССеанса"), |
| 84 | + INTERACTIVE_DELETE_PREDEFINED_DATA("InteractiveDeletePredefinedData", |
| 85 | + "ИнтерактивноеУдалениеПредопределенныхДанных"), |
| 86 | + INTERACTIVE_SET_DELETION_MARK_PREDEFINED_DATA("InteractiveSetDeletionMarkPredefinedData", |
| 87 | + "ИнтерактивнаяПометкаУдаленияПредопределенныхДанных"), |
| 88 | + INTERACTIVE_CLEAR_DELETION_MARK_PREDEFINED_DATA("InteractiveClearDeletionMarkPredefinedData", |
| 89 | + "ИнтерактивноеСнятиеПометкиУдаленияПредопределенныхДанных"), |
| 90 | + INTERACTIVE_DELETE_MARKED_PREDEFINED_DATA("InteractiveDeleteMarkedPredefinedData", |
| 91 | + "ИнтерактивноеУдалениеПомеченныхПредопределенныхДанных"), |
| 92 | + CONFIGURATION_EXTENSIONS_ADMINISTRATION("ConfigurationExtensionsAdministration", |
| 93 | + "АдминистрированиеРасширенийКонфигурации"), |
| 94 | + READ_DATA_HISTORY("ReadDataHistory", "ЧтениеИсторииДанных"), |
| 95 | + VIEW_DATA_HISTORY("ViewDataHistory", "ПросмотрИсторииДанных"), |
| 96 | + READ_DATA_HISTORY_OF_MISSING_DATA("ReadDataHistoryOfMissingData", |
| 97 | + "ЧтениеИсторииДанныхОтсутстсвующихДанных"), |
| 98 | + UPDATE_DATA_HISTORY("UpdateDataHistory", "ИзменениеИсторииДанных"), |
| 99 | + UPDATE_DATA_HISTORY_OF_MISSING_DATA("UpdateDataHistoryOfMissingData", |
| 100 | + "ИзменениеИсторииДанныхОтсутствующихДанных"), |
| 101 | + UPDATE_DATA_HISTORY_SETTINGS("UpdateDataHistorySettings", "ИзменениеНастроекИсторииДанных"), |
| 102 | + UPDATE_DATA_HISTORY_VERSION_COMMENT("UpdateDataHistoryVersionComment", |
| 103 | + "ИзменениеКомментарияВерсииИсторииДанных"), |
| 104 | + EDIT_DATA_HISTORY_VERSION_COMMENT("EditDataHistoryVersionComment", |
| 105 | + "РедактированиеКомментарияВерсииИсторииДанных"), |
| 106 | + SWITCH_TO_DATA_HISTORY_VERSION("SwitchToDataHistoryVersion", "ПереходНаВерсиюИсторииДанных"), |
| 107 | + COLLABORATION_SYSTEM_INFO_BASE_REGISTRATION("CollaborationSystemInfoBaseRegistration", |
| 108 | + "РегистрацияИнформационнойБазыСистемыВзаимодействия"), |
| 109 | + MOBILE_CLIENT("MobileClient", "МобильныйКлиент"), |
| 110 | + MAIN_WINDOW_MODE_NORMAL("MainWindowModeNormal", "РежимОсновногоОкнаОбычный"), |
| 111 | + MAIN_WINDOW_MODE_WORKPLACE("MainWindowModeWorkplace", "РежимОсновногоОкнаРабочееМесто"), |
| 112 | + MAIN_WINDOW_MODE_EMBEDDED_WORKPLACE("MainWindowModeEmbeddedWorkplace", |
| 113 | + "РежимОсновногоОкнаВстроенноеРабочееМесто"), |
| 114 | + MAIN_WINDOW_MODE_FULLSCREEN_WORKPLACE("MainWindowModeFullscreenWorkplace", |
| 115 | + "РежимОсновногоОкнаПолноэкранноеРабочееМесто"), |
| 116 | + MAIN_WINDOW_MODE_KIOSK("MainWindowModeKiosk", "РежимОсновногоОкнаКиоск"), |
| 117 | + TECHNICAL_SPECIALIST_MODE("TechnicalSpecialistMode", "РежимТехническогоСпециалиста"), |
| 118 | + EXCLUSIVE_MODE_TERMINATION_AT_SESSION_START("ExclusiveModeTerminationAtSessionStart", |
| 119 | + "ЗавершениеМонопольногоРежимаПриНачалеСеанса"), |
| 120 | + ANALYTICS_SYSTEM_CLIENT("AnalyticsSystemClient", "КлиентСистемыАналитики"), |
| 121 | + REMOTE_DESKTOP_HOST("RemoteDesktopHost", |
| 122 | + "ПредоставлениеУдаленногоУправленияРабочимСтоломДругомуПользователю"), |
| 123 | + REMOTE_DESKTOP_CLIENT("RemoteDesktopClient", |
| 124 | + "УдаленноеУправлениеРабочимСтоломДругогоПользователя"), |
| 125 | + UNKNOWN("unknown", "unknown") { |
105 | 126 | @Override
|
106 | 127 | public boolean isUnknown() {
|
107 | 128 | return true;
|
108 | 129 | }
|
109 | 130 | };
|
110 | 131 |
|
| 132 | + private static final Map<String, RoleRight> keys = computeKeys(); |
| 133 | + |
| 134 | + /** |
| 135 | + * Английское имя |
| 136 | + */ |
111 | 137 | @Accessors(fluent = true)
|
112 | 138 | private final String value;
|
| 139 | + |
| 140 | + /** |
| 141 | + * Русское имя |
| 142 | + */ |
| 143 | + @Accessors(fluent = true) |
| 144 | + private final String valueRu; |
| 145 | + |
| 146 | + /** |
| 147 | + * Ищет элемент перечисления по имени (рус, анг) |
| 148 | + * |
| 149 | + * @param string Имя искомого элемента |
| 150 | + * @return Найденное значение, если не найден - то unknown |
| 151 | + */ |
| 152 | + public static RoleRight valueByString(String string) { |
| 153 | + return keys.getOrDefault(string, UNKNOWN); |
| 154 | + } |
| 155 | + |
| 156 | + private static Map<String, RoleRight> computeKeys() { |
| 157 | + Map<String, RoleRight> keysMap = new ConcurrentSkipListMap<>(String.CASE_INSENSITIVE_ORDER); |
| 158 | + for (var element : values()) { |
| 159 | + if (element.isUnknown()) { |
| 160 | + continue; |
| 161 | + } |
| 162 | + keysMap.put(element.value(), element); |
| 163 | + keysMap.put(element.valueRu(), element); |
| 164 | + } |
| 165 | + return keysMap; |
| 166 | + } |
113 | 167 | }
|
0 commit comments