Den officiella Doconut-funktionskatalogen listar webbläsarutskrift och PDF‑export som visningsfunktioner. Att kontrollera åtkomst till dem kräver fortfarande två separata beslut: om Doconut visar den relevanta åtgärden och om värdapplikationen godkänner den operationen för den aktuella användaren och dokumentet.

För de exakta kontroller som stöds av din installerade version, börja med Doconut‑dokumentationen och de medföljande exemplen som finns på den officiella Doconut‑nedladdningssidan. Kopiera inte konfigurationsnycklar eller källkod från en orelaterad version eller en overifierad artikel.
1. Definiera utskriftspolicyn först
Skriv ner vem som får skriva ut och under vilka förutsättningar innan du ändrar verktygsfältet. En användbar policy besvarar frågor som:
- Är utskrift tillåten för varje visare, endast vissa roller eller specifika dokument?
- Beror beslutet på hyresgäst, ärendestatus, dokumentklassificering eller utgångsdatum?
- Krävs ett vattenmärke på utskriftsresultatet?
- Ska utskrifts‑händelser auditera?
- Kan en användare skriva ut en äldre dokumentrevision?
- Vad ska hända när behörigheten ändras medan förhandsgranskningen är öppen?
Undvik en enda global Boolean när den faktiska regeln är kontextuell. Modellera utskrift som en egen operation så att den kan auktoriseras oberoende av visning och nedladdning.
2. Separera UI‑tillstånd från auktorisering
Värdsidan kan besluta om den ska visa en utskriftskontroll efter att den mottagit ett applikationsägt behörighetsresultat. Det förbättrar tydligheten för användare som inte kan skriva ut.
Att dölja en kontroll är dock inte en auktoriseringsgräns. En användare kan fortfarande anropa en känd endpoint direkt, återupprepa en tidigare begäran eller initiera webbläsarutskrift på synligt innehåll. Varje server‑route som genererar utskriftsbart material måste verkställa samma policy.
Använd distinkta tillstånd i UI‑n:
| Tillstånd | Visningsbeteende | Serverbeteende |
|---|---|---|
| Utskrift tillåten | Visa den stödjade utskriftsåtgärden | Auktorisera och skapa den begärda utskriften |
| Utskrift nekad | Dölj eller inaktivera åtgärden med en tydlig förklaring | Returnera ett förbjudet svar |
| Policy okänd | Behåll åtgärden otillgänglig medan behörigheten laddas | Skapa inte någon utskrift |
| Sessionen har gått ut | Be användaren autentisera sig på nytt | Avvisa den föråldrade begäran |
3. Skydda utskrifts‑endpointen
Skydda den applikationsoperation som initierar utskrift eller returnerar utskriftsbart material. Auktoriseringsbeslutet bör ta hänsyn till hyresgästmedlemskap, ägandeskap, klassificering, arbetsflödesstatus och dokumentrevision. Hämta dokumentet på servern istället för att acceptera en klient‑tillhandahållen sökväg eller lagrings‑URL.
Om din applikation skriver ut via en visningsspecifik route istället för att skapa en PDF, tillämpa samma auktorisering innan den routen anropas.
4. Konfigurera den installerade visarversionen
När server‑regeln finns, konfigurera Doconut‑UI:n med exakt det alternativ som dokumenteras för paketet och exempel‑filerna som följer med din version. De Doconut‑live‑demosen låter dig observera stödjt visningsbeteende innan du bestämmer dig för en specifik integration. Verifiera:
- Var alternativet sätts: serverkonfiguration, view‑model eller klient‑initialisering.
- Om det döljer ett verktygsfältsobjekt, inaktiverar en åtgärd eller påverkar genererat resultat.
- Om värdet gäller per visare‑instans eller globalt.
- Om utskrift och export är separata operationer.
- Om en uppdatering ändrat alternativets namn eller standardvärde.
Behandla det officiella exemplet som sanningskällan. Ett plausibelt egenskapsnamn är inte tillräckligt bevis för att den installerade visaren känner igen det.
5. Hantera webbläsarutskrift ärligt
En visningsinställning kan inte garantera att synlig information aldrig skrivs ut eller fångas. Webbläsaren kan skriva ut värdsidan, och användare kan ta skärmdumpar eller fotografier. Tangentbords‑interception och utskrifts‑specifik CSS kan förbättra den förväntade upplevelsen, men de är kringgående klient‑sida‑åtgärder.
Om värdsidan inte ska producera en användbar papperskopia kan din applikation använda sin egen utskriftsspecifika presentation för att ersätta förhandsgranskningen med ett förklarande meddelande. Håll detta värdsidesbeteende separat från Doconut‑dokumenterade visarkontroller.
Beskriv inte detta som dokumentskydd. Använd server‑sidrendering, auktorisering, kontrollerade exporteringar och synliga vattenmärken när din riskbedömning kräver starkare avskräckning.
6. Håll nedladdning, export och utskrift separata
Användare och utvecklare behandlar ofta dessa som en enda “endast‑läslig” växel, men de representerar olika datavägar:
- Visa visar renderat innehåll.
- Nedladdning returnerar källfilen eller en annan lagrad fil.
- Export skapar ett derivatformat.
- Utskrift producerar en utskriftsbar representation eller initierar webbläsarutskrift.
Auktorisera varje operation explicit. En användare som inte får skriva ut kan fortfarande tillåtas att ladda ner, och vice versa. Ditt verktygsfält bör spegla serverns beslut snarare än att definiera dem.
7. Lägg till användbara audit‑händelser
Om utskrift är känslig, registrera beslutet utan att logga själva dokumentet. En händelse kan innehålla användare, hyresgäst, dokumentidentifierare, revision, policyresultat, tidsstämpel och korrelations‑ID.
Logga både lyckade och nekade försök. Om utskriftstjänsten skapar en temporär fil, logga även om dess rensning slutfördes. Håll filsökvägar, token, dokumenttitlar som innehåller personuppgifter och utskriftsbart innehåll utanför rutinloggar.
8. Testa bortom den saknade knappen
Verktygsfältet är bara den första påståendet. Lägg till tester för hela operationen:
Auktoriserad användare
- Den avsedda utskriftsåtgärden är synlig.
- Utskriftsbegäran lyckas för ett tillåtet dokument.
- Rätt revision används.
- Nödvändiga märkningar visas på genererat resultat.
- Audit‑händelsen registrerar framgång.
Oauktoriserad användare
- Åtgärden saknas eller är inaktiverad.
- En direkt begäran till utskrifts‑routen returnerar ett förbjudet svar.
- Ändring av dokument‑ID kringgår inte regeln.
- En URL kopierad från en auktoriserad session kan inte återanvändas felaktigt.
- Nekandet avslöjar inte om en annan hyresgäst äger dokumentet.
Tillståndsändringar
- Behörighet återkallas under en session och verkställs vid nästa utskriftsbegäran.
- En utgången session kan inte skriva ut.
- Ett raderat eller ersatt dokument ger ett kontrollerat fel.
- Temporärt utskriftsresultat följer den konfigurerade retention‑regeln.
Webbläsar‑automation kan verifiera synligt tillstånd och svarskod. Integrations‑tester bör verifiera policy‑utvärdering och dokument‑nivå‑auktorisering oberoende.
Vanliga frågor
Stoppar dölja utskriftsknappen webbläsarens utskrifts‑kortkommando?
Nej. Det tar bara bort en avsedd visningsåtgärd om den installerade visaren implementerar det beteendet. Webbläsarutskrift och skärmdumps‑fångst kräver separat övervägning och kan inte helt förhindras med klient‑kod.
Ska utskriftsbehörighet inkluderas i visnings‑URL:en?
Föredra ett server‑sidigt auktoriseringsbeslut knutet till den autentiserade användaren, dokumentet och operationen. Om en temporär referens bär behörigheter, begränsa dess räckvidd, skydda den mot loggar och refererare, och validera känsliga åtgärder igen.
Är det tillräckligt att inaktivera utskrift för konfidentiella dokument?
Nej. Det är en användbarhets‑ eller avskräckningskontroll. Konfidentiella arbetsflöden kräver även lagringsskydd, objekt‑nivå‑auktorisering, kontrollerade exporteringar, retention‑regler, övervakning och en accepterad residual‑risk‑modell.
Slutsats
En pålitlig Doconut‑utskrift‑kontrollimplementation börjar på servern och slutar i gränssnittet. Definiera policyn, skydda operationen, konfigurera endast det dokumenterade alternativet för din installerade visare, förklara resultatet för användarna och testa direkta begäranden såväl som verktygsfältets synlighet. Använd den officiella funktions‑sidan, dokumentationen, nedladdningarna och demona som implementationskällor snarare än att återskapa produktkod i artikeln.