UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NamePermissionList.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "Containers/Map.h"
10#include "CoreTypes.h"
11#include "Delegates/Delegate.h"
12#include "HAL/PlatformCrt.h"
14#include "UObject/NameTypes.h"
15
16class FString;
17
20
21class FNamePermissionList : public TSharedFromThis<FNamePermissionList>
22{
23public:
26
28 CORE_API bool PassesFilter(const FName Item) const;
29
34 CORE_API bool AddDenyListItem(const FName OwnerName, const FName Item);
35
40 CORE_API bool AddAllowListItem(const FName OwnerName, const FName Item);
41
46 CORE_API bool RemoveDenyListItem(const FName OwnerName, const FName Item);
47
52 CORE_API bool RemoveAllowListItem(const FName OwnerName, const FName Item);
53
58 CORE_API bool AddDenyListAll(const FName OwnerName);
59
61 CORE_API bool HasFiltering() const;
62
65
70 CORE_API bool UnregisterOwner(const FName OwnerName);
71
76 CORE_API bool UnregisterOwners(const TArray<FName>& OwnerNames);
77
83
89
92
95
97 bool IsDenyListAll() const { return DenyListAll.Num() > 0; }
98
101
102protected:
103
106
109
112
115
118};
119
121{
122 Default, // Default path permission list
123 ClassPaths // Class permission list
124};
125
126// Result of non-exact filtering on path prefixes
128{
129 // The query against the list failed because of one of the following:
130 // * There was an explicit allow-list and none of the entries was a parent path of the query path
131 // (or a child of the query path when bAllowParentPaths = true)
132 // * There were deny-list entries and one of the entries was a parent path of the query path
133 Fail,
134 // The query against the list failed and either:
135 // * All paths are denied, so queries for child paths will also fail
136 // * The query failed on a deny-list entry, so child paths will fail on this same entry
137 // * There is an explicit allow-list and there are no entries with more components than the query path,
138 // so children can never pass.
140 // The query against the list succeeded, but queries for child paths may fail because there are longer
141 // paths in the deny-list with more components
142 Pass,
143 // The query against the list succeeded and queries for child paths will all succeed no deny-list entry can
144 // possibly fail them
146};
147
158class FPathPermissionList : public TSharedFromThis<FPathPermissionList>
159{
160public:
165
168
171
173 CORE_API bool PassesFilter(const FStringView Item) const;
174
176 CORE_API bool PassesFilter(const FName Item) const;
177
179 CORE_API bool PassesFilter(const TCHAR* Item) const;
180
182 CORE_API bool PassesStartsWithFilter(const FStringView Item, const bool bAllowParentPaths = false) const;
183
185 CORE_API bool PassesStartsWithFilter(const FName Item, const bool bAllowParentPaths = false) const;
186
188 CORE_API bool PassesStartsWithFilter(const TCHAR* Item, const bool bAllowParentPaths = false) const;
189
228 const bool bAllowParentPaths = false) const;
229
234 CORE_API bool AddDenyListItem(const FName OwnerName, const FStringView Item);
235
240 CORE_API bool AddDenyListItem(const FName OwnerName, const FName Item);
241
246 CORE_API bool AddDenyListItem(const FName OwnerName, const TCHAR* Item);
247
250
252 CORE_API bool HasDenyListEntries() const;
253
256
261 CORE_API bool RemoveDenyListItem(const FName OwnerName, const FStringView Item);
262
267 CORE_API bool RemoveDenyListItem(const FName OwnerName, const FName Item);
268
273 CORE_API bool RemoveDenyListItem(const FName OwnerName, const TCHAR* Item);
274
280
285 CORE_API bool AddAllowListItem(const FName OwnerName, const FStringView Item);
286
291 CORE_API bool AddAllowListItem(const FName OwnerName, const FName Item);
292
297 CORE_API bool AddAllowListItem(const FName OwnerName, const TCHAR* Item);
298
301 CORE_API bool HasAllowListEntries() const;
302
305
310 CORE_API bool RemoveAllowListItem(const FName OwnerName, const FStringView Item);
311
316 CORE_API bool RemoveAllowListItem(const FName OwnerName, const FName Item);
317
322 CORE_API bool RemoveAllowListItem(const FName OwnerName, const TCHAR* Item);
323
328 CORE_API bool AddDenyListAll(const FName OwnerName);
329
331 CORE_API bool HasFiltering() const;
332
335
340 CORE_API bool UnregisterOwner(const FName OwnerName);
341
346 CORE_API bool UnregisterOwners(const TArray<FName>& OwnerNames);
347
353
361
367
369 UE_DEPRECATED(5.5, "GetDenyList is deprecated. Use GetDenyListEntries instead.")
370 const TMap<FString, FPermissionListOwners>& GetDenyList() const;
371
373 UE_DEPRECATED(5.5, "GetAllowList is deprecated. Use GetAllowListEntries instead.")
374 const TMap<FString, FPermissionListOwners>& GetAllowList() const;
375
377 bool IsDenyListAll() const { return DenyListAll.Num() > 0; }
378
381
383 CORE_API FString ToString() const;
384
385protected:
386
391 CORE_API void VerifyItemMatchesListType(const FStringView Item) const;
392
395
398
401
404
407
410};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
TArray< FName > FPermissionListOwners
Definition NamePermissionList.h:19
EPathPermissionPrefixResult
Definition NamePermissionList.h:128
EPathPermissionListType
Definition NamePermissionList.h:121
Definition NamePermissionList.h:22
CORE_API bool UnregisterOwner(const FName OwnerName)
Definition NamePermissionList.cpp:142
FPermissionListOwners DenyListAll
Definition NamePermissionList.h:111
CORE_API bool RemoveAllowListItem(const FName OwnerName, const FName Item)
Definition NamePermissionList.cpp:76
CORE_API bool AddDenyListItem(const FName OwnerName, const FName Item)
Definition NamePermissionList.cpp:29
CORE_API bool HasFiltering() const
Definition NamePermissionList.cpp:109
FNamePermissionList()
Definition NamePermissionList.h:24
TMap< FName, FPermissionListOwners > AllowList
Definition NamePermissionList.h:108
CORE_API bool UnregisterOwners(const TArray< FName > &OwnerNames)
Definition NamePermissionList.cpp:176
CORE_API bool PassesFilter(const FName Item) const
Definition NamePermissionList.cpp:9
virtual ~FNamePermissionList()
Definition NamePermissionList.h:25
FSimpleMulticastDelegate & OnFilterChanged()
Definition NamePermissionList.h:100
CORE_API bool UnregisterOwnersAndAppend(const TArray< FName > &OwnerNamesToRemove, const FNamePermissionList &FiltersToAdd)
Definition NamePermissionList.cpp:232
CORE_API bool AddAllowListItem(const FName OwnerName, const FName Item)
Definition NamePermissionList.cpp:43
CORE_API bool RemoveDenyListItem(const FName OwnerName, const FName Item)
Definition NamePermissionList.cpp:57
const TMap< FName, FPermissionListOwners > & GetDenyList() const
Definition NamePermissionList.h:91
TMap< FName, FPermissionListOwners > DenyList
Definition NamePermissionList.h:105
CORE_API TArray< FName > GetOwnerNames() const
Definition NamePermissionList.cpp:114
CORE_API bool AddDenyListAll(const FName OwnerName)
Definition NamePermissionList.cpp:95
FSimpleMulticastDelegate OnFilterChangedDelegate
Definition NamePermissionList.h:114
bool bSuppressOnFilterChanged
Definition NamePermissionList.h:117
const TMap< FName, FPermissionListOwners > & GetAllowList() const
Definition NamePermissionList.h:94
bool IsDenyListAll() const
Definition NamePermissionList.h:97
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition NamePermissionList.h:159
EPathPermissionListType ListType
Definition NamePermissionList.h:409
CORE_API bool HasDenyListEntries() const
Definition PathPermissionList.cpp:204
CORE_API bool RemoveDenyListItem(const FName OwnerName, const FStringView Item)
Definition PathPermissionList.cpp:175
CORE_API FPermissionListOwners RemoveDenyListItemAndGetOwners(FStringView Item)
Definition PathPermissionList.cpp:216
FPathPermissionList & operator=(const FPathPermissionList &)=default
TDirectoryTree< FPermissionListOwners > AllowTree
Definition NamePermissionList.h:397
CORE_API bool AddDenyListItem(const FName OwnerName, const FStringView Item)
Definition PathPermissionList.cpp:150
CORE_API bool UnregisterOwnersAndAppend(const TArray< FName > &OwnerNamesToRemove, const FPathPermissionList &FiltersToAdd)
Definition PathPermissionList.cpp:525
FSimpleMulticastDelegate OnFilterChangedDelegate
Definition NamePermissionList.h:403
CORE_API TArray< FName > GetOwnerNames() const
Definition PathPermissionList.cpp:316
CORE_API bool PassesStartsWithFilter(const FStringView Item, const bool bAllowParentPaths=false) const
Definition PathPermissionList.cpp:68
CORE_API bool AddAllowListItem(const FName OwnerName, const FStringView Item)
Definition PathPermissionList.cpp:244
CORE_API bool ContainsDenyListItem(FStringView Item) const
Definition PathPermissionList.cpp:145
bool IsDenyListAll() const
Definition NamePermissionList.h:377
TDirectoryTree< FPermissionListOwners > DenyTree
Definition NamePermissionList.h:394
FPermissionListOwners DenyListAll
Definition NamePermissionList.h:400
CORE_API bool RemoveAllowListItem(const FName OwnerName, const FStringView Item)
Definition PathPermissionList.cpp:282
CORE_API bool HasAllowListEntries() const
Definition PathPermissionList.cpp:232
const TMap< FString, FPermissionListOwners > & GetDenyList() const
Definition PathPermissionList.cpp:21
CORE_API TArray< FString > GetAllowListEntries() const
Definition PathPermissionList.cpp:237
virtual PRAGMA_DISABLE_DEPRECATION_WARNINGS ~FPathPermissionList()
Definition NamePermissionList.h:163
CORE_API bool PassesFilter(const FStringView Item) const
Definition PathPermissionList.cpp:33
PRAGMA_ENABLE_DEPRECATION_WARNINGS FPathPermissionList(const FPathPermissionList &)=default
CORE_API FPathPermissionList CombinePathFilters(const FPathPermissionList &OtherFilter) const
Definition PathPermissionList.cpp:454
const TMap< FString, FPermissionListOwners > & GetAllowList() const
Definition PathPermissionList.cpp:26
CORE_API TArray< FString > GetDenyListEntries() const
Definition PathPermissionList.cpp:209
CORE_API void VerifyItemMatchesListType(const FStringView Item) const
Definition PathPermissionList.cpp:549
bool bSuppressOnFilterChanged
Definition NamePermissionList.h:406
CORE_API bool UnregisterOwner(const FName OwnerName)
Definition PathPermissionList.cpp:348
FSimpleMulticastDelegate & OnFilterChanged()
Definition NamePermissionList.h:380
CORE_API EPathPermissionPrefixResult PassesStartsWithFilterRecursive(const FStringView Item, const bool bAllowParentPaths=false) const
Definition PathPermissionList.cpp:92
FPathPermissionList & operator=(FPathPermissionList &&)=default
CORE_API bool AddDenyListAll(const FName OwnerName)
Definition PathPermissionList.cpp:268
CORE_API FString ToString() const
Definition PathPermissionList.cpp:558
FPathPermissionList(FPathPermissionList &&)=default
CORE_API bool HasFiltering() const
Definition PathPermissionList.cpp:311
CORE_API bool UnregisterOwners(const TArray< FName > &OwnerNames)
Definition PathPermissionList.cpp:388
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition DirectoryTree.h:85
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640