From 91f6779f38901aadd77490916529c0afc4ac48d0 Mon Sep 17 00:00:00 2001 From: Priec Date: Wed, 12 Aug 2026 10:35:13 +0200 Subject: [PATCH] permissions display --- client | 2 +- common/proto/tables_data.proto | 9 +++++++-- common/src/proto/descriptor.bin | Bin 164646 -> 164924 bytes common/src/proto/komp_ac.tables_data.rs | 11 +++++++++-- server | 2 +- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/client b/client index 4001db94..fd78cd73 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit 4001db9446720f5426e105019a53acbe4c915624 +Subproject commit fd78cd73aa0af58c7b18553607ea2a04f8d457f2 diff --git a/common/proto/tables_data.proto b/common/proto/tables_data.proto index 769f1cfa..39abd93a 100644 --- a/common/proto/tables_data.proto +++ b/common/proto/tables_data.proto @@ -275,7 +275,7 @@ message DeleteTableDataRequest { // Soft-delete response. message DeleteTableDataResponse { - // True if a row was marked deleted (id existed and was not already deleted). + // True when the row was successfully marked deleted. bool success = 1; } @@ -307,6 +307,9 @@ enum ResolvedTableLinkStatus { SUPERSEDED = 1; UNAVAILABLE = 2; DELETED = 3; + // The source row may expose the FK and the target's configured display + // columns, but the caller may not read the target table itself. + RESTRICTED = 4; } message ResolvedTableLinkVersion { @@ -349,7 +352,9 @@ message GetTableDataResponse { repeated string row_display_columns = 3; // Links keyed by their public column name. Each value contains the row as - // saved by this record and the newest available state of the linked row. + // saved by this record and, when the caller may read the target table, its + // newest available state. Restricted links contain only the target table's + // configured display columns. map resolved_links = 4; // The generation returned by this response. Zero is never returned. diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 8d8cb0f14a8e4bd2daf0fb1613b21716c23d6471..5ede8012cbf059529eca40909254cb08d080297a 100644 GIT binary patch delta 1997 zcmZ9MPiz}S7{$HMYuA}HjlH%TV*YfYta+f2M$O^%^zr*pr#2@#VwcQR4GU$Qjn@hL8*8%yCWA)_HSptw{PAz z`+fhFSom7ZeqsECPm7qJYt0sME^UklKVHCS+Bzo0$ncfXk&ADS4qr%{Epr%um>nCQ zIASG?*pt@wMGW`9`Ia!vF2pSJ7LY9z?a@Zlv8S&&HQT%9*p2$MJza8bw^=Sbt~=4J zR%h(VQscTaZjU=v$8*M8H$D6SZw+B4VlXYU1!M|e8ulo4+4Vsy;Yjw|VI3=m#Q&q|EXRPYj70-356N5r@iG;LeC|^f4LSlDX92GFrR`NDt zzrYZkB5tO+^EOg8mrOG)1DXeNvQAP$;Sr78JC9U1(O1iH$yPS1<>~@(BHC;u73MXn z)#C+?EM36!FGQvEw+Nh#7G zmWoqqsVxxvX;{QkEFzMC9h> zFsFn`r0lYeDFZIv)iIG66ETd5s8*wxh%CLUW6FRrt%NZ#eoIa%C#52;?2 zlO?ay8XzxB!X#0a7{)~8-ZiAcml7$vhOT2#DHrc+gO-Yk7+xQuua=(;Esgp5{=9Vqucsd%^_tM(PaAXU>cBI}SkDg#|7M}xq9<@U7?BIWkAkGyRDf$}lL z|13Oc7fK%o+6Pxzcp!az$OGi%6*~;(KF3G>hdN6>WXT~?X%zvHC5Oo7#*$Nwx>q0i E7Z3_X3;+NC delta 1685 zcmYL}O=whC7>4J*b7#Ccnr7zQ8QV;My!AH;I4PP%k#^O(=nsX`xKUh8nyVce6PX!J zDdLz|O1Is3K`3<7u3G4#GMY&KiZK>MaFI>25K=0Eh#CkaJKuBe{g_qq-0!^ach38r zGk1SdzyGMN{owqKs{{D$m)5lb^yi$x=&z44*eaaFW4B|mrgrI!liF!L{{$!dK02*j zw-YJt-T?g4=fPm@QW#Xv1(l#SHXe*u>cNFd?b~oT7!F6m2LJX{hlB9DYTf)_86D=5 zsQ(m-PH*c{1AoA|)!ILf@15oz1vjU&Eu`+kQM*;z%{kg_!3)$L_RN`{w}FD{R2f4V zi@OB5_BOmO!L&i`CsG#g0Q-`nleJhBwAJR`k}$P*@b){27TTQxdXpkti%O8Yn8NP7 zAg!jL4+_$03P*YpC(<;~mlV@06V$hET)6Opd7aZF9u&4blB$%(|Ah;dFtTTNmjQadLx<-wTd zB_nwI07$XvV#FK$Yt?IJo~OSCNBmknwg6EVI% zL|c6`-Vu?~`>;E5U2S4oYD>X{iQU}&P{vfLT|!B;CW)oCmh=FKFPBD|TB6Y!sR`l% zO7R^h+Qs`1s1JExe4TxW)PK>RSMWjZA-uQLOYlkgCWPhI&K1<1^0Ew?Uum_BWY9!f zEt^5lI99~!N_6uo=9()q79S4BvLa(4nnf~UA}v;Az`hA#RUQI~1182<6X~?tb~2Hy z$~$0{POIQM_|;LJ<_P2`z(DEe=>I0ZJ|8r`34_saJghf@%H>LRq%t%T2K7dz5e8%D zY;~kMYJQ*ib5)j}CQG`+xzm$9pWxko8!gfHICflpY0uB?u0`Dw_^P}n56g#3$r?OA zk+_tsVejke2;(p4>{FzkMK>pKxa+C;L3@uz1(W`I^k@Rdj;@1u&CHP>X|#@x_|Xw* zw2n8r)%#Y$;zm@S#EJ4oTVlfAKu6rWV8h-py+32`qRzfRYA3oeiBG#;z&m7n7ftWY z==mgjZ;BB=(r8n96WM!HdKb+gwxTbt, /// Links keyed by their public column name. Each value contains the row as - /// saved by this record and the newest available state of the linked row. + /// saved by this record and, when the caller may read the target table, its + /// newest available state. Restricted links contain only the target table's + /// configured display columns. #[prost(map = "string, message", tag = "4")] pub resolved_links: ::std::collections::HashMap< ::prost::alloc::string::String, @@ -352,6 +354,9 @@ pub enum ResolvedTableLinkStatus { Superseded = 1, Unavailable = 2, Deleted = 3, + /// The source row may expose the FK and the target's configured display + /// columns, but the caller may not read the target table itself. + Restricted = 4, } impl ResolvedTableLinkStatus { /// String value of the enum field names used in the ProtoBuf definition. @@ -364,6 +369,7 @@ impl ResolvedTableLinkStatus { Self::Superseded => "SUPERSEDED", Self::Unavailable => "UNAVAILABLE", Self::Deleted => "DELETED", + Self::Restricted => "RESTRICTED", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -373,6 +379,7 @@ impl ResolvedTableLinkStatus { "SUPERSEDED" => Some(Self::Superseded), "UNAVAILABLE" => Some(Self::Unavailable), "DELETED" => Some(Self::Deleted), + "RESTRICTED" => Some(Self::Restricted), _ => None, } } diff --git a/server b/server index d927987c..d6dd48e6 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit d927987c955234a0f322337ae3b017bce99c9e76 +Subproject commit d6dd48e6df0e0f61fe7605ee94c798a69da83886