Formatting
This commit is contained in:
parent
86bd5fb545
commit
7de31f5d32
@ -16,9 +16,12 @@ class GroupQuery(DbModelQueryABC):
|
||||
self.field(
|
||||
ResolverFieldBuilder("shortUrls")
|
||||
.with_resolver(self._get_urls)
|
||||
.with_require_any([
|
||||
.with_require_any(
|
||||
[
|
||||
Permissions.groups,
|
||||
], [group_by_assignment_resolver])
|
||||
],
|
||||
[group_by_assignment_resolver],
|
||||
)
|
||||
)
|
||||
self.set_field("roles", self._get_roles)
|
||||
|
||||
|
@ -120,7 +120,7 @@ class Query(QueryABC):
|
||||
Permissions.short_urls_create,
|
||||
Permissions.short_urls_update,
|
||||
],
|
||||
[group_by_assignment_resolver]
|
||||
[group_by_assignment_resolver],
|
||||
)
|
||||
)
|
||||
self.field(
|
||||
|
@ -12,11 +12,19 @@ async def group_by_assignment_resolver(ctx: QueryContext) -> bool:
|
||||
groups = [await x.group for x in ctx.data.nodes]
|
||||
role_ids = {x.id for x in await ctx.user.roles}
|
||||
filtered_groups = [
|
||||
g.id for g in groups if
|
||||
g is not None and (roles := await groupDao.get_roles(g.id)) and all(r.id in role_ids for r in roles)
|
||||
g.id
|
||||
for g in groups
|
||||
if g is not None
|
||||
and (roles := await groupDao.get_roles(g.id))
|
||||
and all(r.id in role_ids for r in roles)
|
||||
]
|
||||
|
||||
ctx.data.nodes = [node for node in ctx.data.nodes if (await node.group) is not None and (await node.group).id in filtered_groups]
|
||||
ctx.data.nodes = [
|
||||
node
|
||||
for node in ctx.data.nodes
|
||||
if (await node.group) is not None
|
||||
and (await node.group).id in filtered_groups
|
||||
]
|
||||
return True
|
||||
|
||||
return True
|
||||
|
@ -9,7 +9,7 @@ TRequireAnyResolvers = list[
|
||||
Union[
|
||||
Callable[[QueryContext], bool],
|
||||
Awaitable[[QueryContext], bool],
|
||||
Callable[[QueryContext], Coroutine[Any, Any, bool]]
|
||||
Callable[[QueryContext], Coroutine[Any, Any, bool]],
|
||||
]
|
||||
]
|
||||
TRequireAny = tuple[TRequireAnyPermissions, TRequireAnyResolvers]
|
||||
|
@ -506,7 +506,11 @@ class DataAccessObjectABC(ABC, Database, Generic[T_DBM]):
|
||||
" OR ".join(
|
||||
self._build_fuzzy_conditions(
|
||||
[
|
||||
self.__db_names[x] if x in self.__db_names else self.__db_names[camel_to_snake(x)]
|
||||
(
|
||||
self.__db_names[x]
|
||||
if x in self.__db_names
|
||||
else self.__db_names[camel_to_snake(x)]
|
||||
)
|
||||
for x in get_value(values, "fields", list[str])
|
||||
],
|
||||
get_value(values, "term", str),
|
||||
|
@ -38,8 +38,13 @@ def get_value(
|
||||
if (
|
||||
cast_type if not hasattr(cast_type, "__origin__") else cast_type.__origin__
|
||||
) == list:
|
||||
if not (value.startswith("[") and value.endswith("]")) and list_delimiter not in value:
|
||||
raise ValueError("List values must be enclosed in square brackets or use a delimiter.")
|
||||
if (
|
||||
not (value.startswith("[") and value.endswith("]"))
|
||||
and list_delimiter not in value
|
||||
):
|
||||
raise ValueError(
|
||||
"List values must be enclosed in square brackets or use a delimiter."
|
||||
)
|
||||
|
||||
if value.startswith("[") and value.endswith("]"):
|
||||
value = value[1:-1]
|
||||
|
@ -4,5 +4,6 @@ import re
|
||||
def first_to_lower(s: str) -> str:
|
||||
return s[0].lower() + s[1:] if s else s
|
||||
|
||||
|
||||
def camel_to_snake(s: str) -> str:
|
||||
return re.sub(r'(?<!^)(?=[A-Z])', '_', s).lower()
|
||||
return re.sub(r"(?<!^)(?=[A-Z])", "_", s).lower()
|
||||
|
@ -8,7 +8,6 @@ import { ShortUrlsDataService } from 'src/app/modules/admin/short-urls/short-url
|
||||
import { ShortUrlsColumns } from 'src/app/modules/admin/short-urls/short-urls.columns';
|
||||
import { AuthService } from 'src/app/service/auth.service';
|
||||
import { Filter } from 'src/app/model/graphql/filter/filter.model';
|
||||
import { SettingsService } from 'src/app/service/settings.service';
|
||||
import QrCodeWithLogo from 'qrcode-with-logos';
|
||||
import { FileUpload, FileUploadHandlerEvent } from 'primeng/fileupload';
|
||||
import { ConfigService } from 'src/app/service/config.service';
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { User } from 'src/app/model/auth/user';
|
||||
import { BehaviorSubject, concatWith, firstValueFrom, Observable } from 'rxjs';
|
||||
import { BehaviorSubject, firstValueFrom, Observable } from 'rxjs';
|
||||
import { Apollo, gql } from 'apollo-angular';
|
||||
import { PermissionsEnum } from 'src/app/model/auth/permissionsEnum';
|
||||
import { KeycloakService } from 'keycloak-angular';
|
||||
|
Loading…
Reference in New Issue
Block a user