Skip to content

Commit 180dcf0

Browse files
pufitnikitamikhaylov
authored andcommitted
Sad changes
1 parent c395a44 commit 180dcf0

File tree

5 files changed

+13
-4
lines changed

5 files changed

+13
-4
lines changed

src/Access/Common/AccessFlags.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ namespace
103103
const Flags & getDictionaryFlags() const { return all_flags_for_target[DICTIONARY]; }
104104
const Flags & getTableEngineFlags() const { return all_flags_for_target[TABLE_ENGINE]; }
105105
const Flags & getUserNameFlags() const { return all_flags_for_target[USER_NAME]; }
106+
const Flags & getDefinerFlags() const { return all_flags_for_target[DEFINER]; }
106107
const Flags & getNamedCollectionFlags() const { return all_flags_for_target[NAMED_COLLECTION]; }
107108
const Flags & getAllFlagsGrantableOnGlobalLevel() const { return getAllFlags(); }
108109
const Flags & getAllFlagsGrantableOnGlobalWithParameterLevel() const { return getGlobalWithParameterFlags(); }
@@ -124,6 +125,7 @@ namespace
124125
NAMED_COLLECTION = 5,
125126
USER_NAME = 6,
126127
TABLE_ENGINE = 7,
128+
DEFINER = 8,
127129
};
128130

129131
struct Node;
@@ -353,7 +355,7 @@ namespace
353355
std::unordered_map<std::string_view, Flags> keyword_to_flags_map;
354356
std::vector<Flags> access_type_to_flags_mapping;
355357
Flags all_flags;
356-
Flags all_flags_for_target[static_cast<size_t>(TABLE_ENGINE) + 1];
358+
Flags all_flags_for_target[static_cast<size_t>(DEFINER) + 1];
357359
Flags all_flags_grantable_on_database_level;
358360
Flags all_flags_grantable_on_table_level;
359361
Flags all_flags_grantable_on_global_with_parameter_level;
@@ -400,6 +402,9 @@ AccessFlags::ParameterType AccessFlags::getParameterType() const
400402
if (AccessFlags::allUserNameFlags().contains(*this))
401403
return AccessFlags::USER_NAME;
402404

405+
if (AccessFlags::allDefinerFlags().contains(*this))
406+
return AccessFlags::DEFINER;
407+
403408
/// All flags refer to TABLE ENGINE access type.
404409
if (AccessFlags::allTableEngineFlags().contains(*this))
405410
return AccessFlags::TABLE_ENGINE;
@@ -423,6 +428,7 @@ AccessFlags AccessFlags::allColumnFlags() { return Helper::instance().getColumnF
423428
AccessFlags AccessFlags::allDictionaryFlags() { return Helper::instance().getDictionaryFlags(); }
424429
AccessFlags AccessFlags::allNamedCollectionFlags() { return Helper::instance().getNamedCollectionFlags(); }
425430
AccessFlags AccessFlags::allUserNameFlags() { return Helper::instance().getUserNameFlags(); }
431+
AccessFlags AccessFlags::allDefinerFlags() { return Helper::instance().getDefinerFlags(); }
426432
AccessFlags AccessFlags::allTableEngineFlags() { return Helper::instance().getTableEngineFlags(); }
427433
AccessFlags AccessFlags::allFlagsGrantableOnGlobalLevel() { return Helper::instance().getAllFlagsGrantableOnGlobalLevel(); }
428434
AccessFlags AccessFlags::allFlagsGrantableOnGlobalWithParameterLevel() { return Helper::instance().getAllFlagsGrantableOnGlobalWithParameterLevel(); }

src/Access/Common/AccessFlags.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class AccessFlags
5959
TABLE_ENGINE,
6060
NAMED_COLLECTION,
6161
USER_NAME,
62+
DEFINER,
6263
};
6364
ParameterType getParameterType() const;
6465
std::unordered_map<ParameterType, AccessFlags> splitIntoParameterTypes() const;
@@ -108,6 +109,9 @@ class AccessFlags
108109
/// Returns all the flags related to a user.
109110
static AccessFlags allUserNameFlags();
110111

112+
/// Returns all the flags related to a definer.
113+
static AccessFlags allDefinerFlags();
114+
111115
/// Returns all the flags related to a table engine.
112116
static AccessFlags allTableEngineFlags();
113117

src/Access/Common/AccessRightsElement.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ void AccessRightsElement::formatONClause(WriteBuffer & buffer, bool hilite) cons
156156
/// If `enable_user_name_access_type` is set to false, we will dump `GRANT CREATE USER ON *` as `GRANT CREATE USER ON *.*`.
157157
/// This will allow us to run old replicas in the same cluster.
158158
if (access_flags.getParameterType() == AccessFlags::USER_NAME
159-
&& access_flags != AccessType::SET_DEFINER
160159
&& !is_enabled_user_name_access_type)
161160
{
162161
if (!anyParameter())

src/Access/Common/AccessType.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ enum class AccessType : uint8_t
159159
M(SHOW_NAMED_COLLECTIONS_SECRETS, "SHOW NAMED COLLECTIONS SECRETS", NAMED_COLLECTION, NAMED_COLLECTION_ADMIN) \
160160
M(NAMED_COLLECTION, "NAMED COLLECTION USAGE, USE NAMED COLLECTION", NAMED_COLLECTION, NAMED_COLLECTION_ADMIN) \
161161
M(NAMED_COLLECTION_ADMIN, "NAMED COLLECTION CONTROL", NAMED_COLLECTION, ALL) \
162-
M(SET_DEFINER, "", USER_NAME, ALL) \
162+
M(SET_DEFINER, "", DEFINER, ALL) \
163163
\
164164
M(TABLE_ENGINE, "TABLE ENGINE", TABLE_ENGINE, ALL) \
165165
\

tests/integration/test_enable_user_name_access_type/test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from helpers.cluster import ClickHouseCluster
22

33

4-
def test_startup_scripts():
4+
def test_enable_username_access_type():
55
cluster = ClickHouseCluster(__file__)
66

77
node = cluster.add_instance(

0 commit comments

Comments
 (0)