Skip to content

Commit 51ac84a

Browse files
committed
mv CheckAccessWith{UpdateRow,WriteTopic}Permission; use GetAccess
1 parent c53e299 commit 51ac84a

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

ydb/core/tx/scheme_board/cache.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -296,11 +296,12 @@ namespace {
296296
continue;
297297
}
298298

299-
if (!securityObject->CheckAccess(entry.Access, *Context->Request->UserToken)) {
299+
auto access = GetAccess(entry);
300+
if (!securityObject->CheckAccess(access, *Context->Request->UserToken)) {
300301
SBC_LOG_W("Access denied"
301302
<< ": self# " << this->SelfId()
302303
<< ", for# " << Context->Request->UserToken->GetUserSID()
303-
<< ", access# " << NACLib::AccessRightsToString(entry.Access));
304+
<< ", access# " << NACLib::AccessRightsToString(access));
304305

305306
SetErrorAndClear(
306307
Context.Get(),

ydb/services/lib/actors/pq_schema_actor.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ namespace NKikimr::NGRpcProxy::V1 {
139139
navigateRequest->DatabaseName = CanonizePath(Database);
140140
navigateRequest->ResultSet.emplace_back(NSchemeCache::TSchemeCacheNavigate::TEntry{
141141
.Path = NKikimr::SplitPath(GetTopicPath()),
142-
.Access = CheckAccessWithUpdateRowPermission ? NACLib::UpdateRow : NACLib::DescribeSchema,
142+
.Access = CheckAccessWithWriteTopicPermission ? NACLib::UpdateRow : NACLib::DescribeSchema,
143143
.Operation = NSchemeCache::TSchemeCacheNavigate::OpList,
144144
.ShowPrivatePath = showPrivate,
145145
.SyncVersion = true,
@@ -250,7 +250,7 @@ namespace NKikimr::NGRpcProxy::V1 {
250250

251251
protected:
252252
bool IsDead = false;
253-
bool CheckAccessWithUpdateRowPermission = false;
253+
bool CheckAccessWithWriteTopicPermission = false;
254254
const TString TopicPath;
255255
const TString Database;
256256
};

ydb/services/persqueue_v1/actors/schema_actors.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -1311,7 +1311,7 @@ TDescribePartitionActor::TDescribePartitionActor(NKikimr::NGRpcService::IRequest
13111311

13121312
void TDescribePartitionActor::Bootstrap(const NActors::TActorContext& ctx) {
13131313
LOG_DEBUG_S(ctx, NKikimrServices::PQ_READ_PROXY, "TDescribePartitionActor" << ctx.SelfID.ToString() << ": Bootstrap");
1314-
CheckAccessWithUpdateRowPermission = true;
1314+
CheckAccessWithWriteTopicPermission = true;
13151315
TBase::Bootstrap(ctx);
13161316
SendDescribeProposeRequest(ctx);
13171317
Become(&TDescribePartitionActor::StateWork);
@@ -1322,7 +1322,7 @@ void TDescribePartitionActor::StateWork(TAutoPtr<IEventHandle>& ev) {
13221322
case TEvTxProxySchemeCache::TEvNavigateKeySetResult::EventType:
13231323
if (NeedToRequestWithDescribeSchema(ev)) {
13241324
// We do not have the UpdateRow permission. Check if we're allowed to DescribeSchema.
1325-
CheckAccessWithUpdateRowPermission = false;
1325+
CheckAccessWithWriteTopicPermission = false;
13261326
SendDescribeProposeRequest(ActorContext());
13271327
break;
13281328
}
@@ -1337,7 +1337,7 @@ void TDescribePartitionActor::StateWork(TAutoPtr<IEventHandle>& ev) {
13371337
// Return true if we need to send a second request to SchemeCache with DescribeSchema permission,
13381338
// because the first request checking the UpdateRow permission resulted in an AccessDenied error.
13391339
bool TDescribePartitionActor::NeedToRequestWithDescribeSchema(TAutoPtr<IEventHandle>& ev) {
1340-
if (!CheckAccessWithUpdateRowPermission) {
1340+
if (!CheckAccessWithWriteTopicPermission) {
13411341
// We've already sent a request with DescribeSchema, ev is a response to it.
13421342
return false;
13431343
}

0 commit comments

Comments
 (0)