Katalog fitur resmi Doconut feature catalog mencantumkan pencetakan melalui browser dan ekspor PDF sebagai kemampuan penampil. Mengontrol akses ke keduanya masih memerlukan dua keputusan terpisah: apakah Doconut menampilkan tindakan yang relevan dan apakah aplikasi host mengotorisasi operasi tersebut untuk pengguna dan dokumen saat ini.

Untuk kontrol tepat yang didukung oleh build yang terpasang, mulailah dengan Doconut documentation dan contoh paket yang tersedia dari halaman unduhan resmi Doconut download page. Jangan menyalin kunci konfigurasi atau kode sumber dari versi yang tidak terkait atau artikel yang tidak terverifikasi.
1. Definisikan Kebijakan Cetak Terlebih Dahulu
Tuliskan siapa yang boleh mencetak dan dalam kondisi apa sebelum mengubah toolbar. Kebijakan yang berguna menjawab pertanyaan seperti:
- Apakah pencetakan diizinkan untuk setiap penampil, hanya peran tertentu, atau dokumen spesifik?
- Apakah keputusan bergantung pada penyewa, status kasus, klasifikasi dokumen, atau kedaluwarsa?
- Apakah watermark diperlukan pada output yang dapat dicetak?
- Apakah peristiwa cetak harus diaudit?
- Bisakah pengguna mencetak revisi dokumen yang lebih lama?
- Apa yang harus terjadi ketika izin berubah saat pratinjau terbuka?
Hindari satu Boolean global ketika aturan sebenarnya bersifat kontekstual. Modelkan pencetakan sebagai operasi tersendiri sehingga dapat diotorisasi secara independen dari penampilan dan pengunduhan.
2. Pisahkan Status UI dari Otorisasi
Halaman host dapat memutuskan apakah menampilkan kontrol cetak setelah menerima hasil izin yang dimiliki aplikasi. Hal itu meningkatkan kejelasan bagi pengguna yang tidak dapat mencetak.
Namun, menyembunyikan kontrol bukanlah batas otorisasi. Pengguna masih dapat memanggil endpoint yang dikenal secara langsung, memutar ulang permintaan sebelumnya, atau memicu pencetakan browser pada konten yang terlihat. Setiap rute server yang menghasilkan output yang dapat dicetak harus menegakkan kebijakan yang sama.
Gunakan status yang berbeda dalam UI:
| Status | Perilaku Penampil | Perilaku Server |
|---|---|---|
| Pencetakan diizinkan | Tampilkan tindakan cetak yang didukung | Otorisasi dan buat output yang diminta |
| Pencetakan ditolak | Sembunyikan atau nonaktifkan tindakan dengan penjelasan yang jelas | Kembalikan respons terlarang |
| Kebijakan tidak diketahui | Biarkan tindakan tidak tersedia saat izin dimuat | Jangan buat output |
| Sesi kedaluwarsa | Minta pengguna untuk masuk kembali | Tolak permintaan usang |
3. Lindungi Endpoint Cetak
Lindungi operasi aplikasi yang memanggil pencetakan atau mengembalikan output yang dapat dicetak. Keputusan otorisasi harus memperhitungkan keanggotaan penyewa, kepemilikan, klasifikasi, status alur kerja, dan revisi dokumen. Resolusi dokumen dilakukan di server alih-alih menerima jalur atau URL penyimpanan yang diberikan klien.
Jika aplikasi Anda mencetak melalui rute khusus penampil alih-alih membuat PDF, terapkan otorisasi yang sama sebelum memanggil rute tersebut.
4. Konfigurasikan Versi Penampil yang Terpasang
Setelah aturan server ada, konfigurasikan UI Doconut menggunakan opsi tepat yang didokumentasikan untuk paket dan file contoh yang disertakan dengan versi Anda. Demo langsung Doconut live demos memungkinkan Anda mengamati perilaku penampil yang didukung sebelum berkomitmen pada integrasi tertentu. Verifikasi:
- Di mana opsi diatur: konfigurasi server, model tampilan, atau inisialisasi klien.
- Apakah itu menyembunyikan item toolbar, menonaktifkan tindakan, atau memengaruhi output yang dihasilkan.
- Apakah nilai tersebut berlaku per instance penampil atau secara global.
- Apakah pencetakan dan ekspor merupakan operasi terpisah.
- Apakah pembaruan mengubah nama opsi atau nilai default.
Anggap contoh resmi sebagai sumber kebenaran. Nama properti yang tampak masuk akal tidak cukup sebagai bukti bahwa penampil yang terpasang mengenalinya.
5. Tangani Pencetakan Browser Secara Jujur
Pengaturan penampil tidak dapat menjamin bahwa informasi yang terlihat tidak akan pernah dicetak atau ditangkap. Browser dapat mencetak halaman host, dan pengguna dapat mengambil tangkapan layar atau foto. Intersepsi keyboard dan CSS khusus cetak dapat meningkatkan pengalaman yang diharapkan, tetapi keduanya dapat dihindari sebagai langkah sisi klien.
Jika halaman host tidak seharusnya menghasilkan salinan kertas yang berguna, aplikasi Anda dapat menggunakan presentasi khusus cetak miliknya untuk menggantikan pratinjau dengan pesan penjelasan. Jaga perilaku halaman host tersebut terpisah dari kontrol penampil yang didokumentasikan oleh Doconut.
Jangan menggambarkan ini sebagai perlindungan dokumen. Gunakan rendering sisi server, otorisasi, ekspor terkontrol, dan watermark yang terlihat ketika penilaian risiko Anda memerlukan pencegahan yang lebih kuat.
6. Pisahkan Unduhan, Ekspor, dan Cetak
Pengguna dan pengembang sering memperlakukan ini sebagai satu saklar “hanya-baca”, tetapi mereka mewakili aliran data yang berbeda:
- View menampilkan konten yang dirender.
- Download mengembalikan sumber atau file lain yang disimpan.
- Export membuat format turunan.
- Print menghasilkan representasi yang dapat dicetak atau memanggil pencetakan browser.
Otorisasikan setiap operasi secara eksplisit. Pengguna yang tidak dapat mencetak masih dapat diizinkan untuk mengunduh, atau sebaliknya. Toolbar Anda harus mencerminkan keputusan server, bukan mendefinisikannya.
7. Tambahkan Peristiwa Audit yang Berguna
Jika pencetakan bersifat sensitif, catat keputusan tanpa mencatat dokumen itu sendiri. Sebuah peristiwa dapat mencakup pengguna, penyewa, pengidentifikasi dokumen, revisi, hasil kebijakan, cap waktu, dan ID korelasi.
Catat baik upaya yang berhasil maupun yang ditolak. Jika layanan cetak membuat file sementara, juga catat apakah pembersihannya selesai. Simpan jalur file, token, judul dokumen yang berisi data pribadi, dan konten yang dapat dicetak di luar log rutin.
8. Uji Lebih Dari Sekadar Tombol yang Hilang
Toolbar hanyalah pernyataan pertama. Tambahkan pengujian untuk seluruh operasi:
Pengguna yang Diotorisasi
- Tindakan cetak yang dimaksud terlihat.
- Permintaan cetak berhasil untuk dokumen yang diizinkan.
- Revisi yang tepat digunakan.
- Tanda wajib muncul pada output yang dihasilkan.
- Peristiwa audit mencatat keberhasilan.
Pengguna yang Tidak Diotorisasi
- Tindakan tidak ada atau dinonaktifkan.
- Permintaan langsung ke rute cetak mengembalikan respons terlarang.
- Mengubah ID dokumen tidak melewati aturan.
- URL yang disalin dari sesi yang diotorisasi tidak dapat digunakan kembali secara tidak semestinya.
- Penolakan tidak mengungkapkan apakah penyewa lain memiliki dokumen tersebut.
Perubahan Status
- Izin yang dicabut selama sesi ditegakkan pada permintaan cetak berikutnya.
- Sesi yang kedaluwarsa tidak dapat mencetak.
- Dokumen yang dihapus atau digantikan menghasilkan kesalahan terkontrol.
- Output cetak sementara mengikuti aturan retensi yang dikonfigurasi.
Otomasi browser dapat memverifikasi status yang terlihat dan kode respons. Pengujian integrasi harus memverifikasi evaluasi kebijakan dan otorisasi tingkat dokumen secara independen.
Pertanyaan Umum
Apakah menyembunyikan tombol cetak menghentikan pintasan cetak browser?
Tidak. Itu menghapus tindakan penampil yang dimaksud hanya jika penampil yang terpasang mengimplementasikan perilaku tersebut. Pencetakan browser dan penangkapan layar memerlukan pertimbangan terpisah dan tidak dapat sepenuhnya dicegah oleh kode sisi klien.
Haruskah izin cetak disertakan dalam URL penayangan?
Lebih baik keputusan otorisasi sisi server yang terikat pada pengguna yang terautentikasi, dokumen, dan operasi. Jika referensi sementara membawa izin, batasi ruang lingkupnya secara sempit, lindungi dari log dan perujuk, serta validasi kembali tindakan sensitif.
Apakah menonaktifkan cetak sudah cukup untuk dokumen rahasia?
Tidak. Itu hanyalah satu kontrol kegunaan atau pencegahan. Alur kerja rahasia juga memerlukan perlindungan penyimpanan, otorisasi tingkat objek, ekspor terkontrol, aturan retensi, pemantauan, dan model risiko residual yang diterima.
Kesimpulan
Implementasi kontrol cetak Doconut yang dapat dipercaya dimulai dari server dan berakhir di antarmuka. Definisikan kebijakan, lindungi operasi, konfigurasikan hanya opsi yang didokumentasikan untuk penampil yang terpasang, jelaskan hasilnya kepada pengguna, dan uji permintaan langsung serta visibilitas toolbar. Gunakan halaman fitur resmi, dokumentasi, unduhan, dan demo sebagai sumber implementasi daripada membuat ulang kode produk dalam artikel.