-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAccessControl.cs.xml
More file actions
1396 lines (1206 loc) · 112 KB
/
AccessControl.cs.xml
File metadata and controls
1396 lines (1206 loc) · 112 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.10/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.10/ http://www.mediawiki.org/xml/export-0.10.xsd" version="0.10" xml:lang="cs">
<siteinfo>
<sitename>thewoodcraft.org</sitename>
<dbname>wiki</dbname>
<base>https://www.thewoodcraft.org/wiki/index.php/Hlavn%C3%AD_strana</base>
<generator>MediaWiki 1.34.0-alpha</generator>
<case>case-sensitive</case>
<namespaces>
<namespace key="-2" case="case-sensitive">Média</namespace>
<namespace key="-1" case="first-letter">Speciální</namespace>
<namespace key="0" case="case-sensitive" />
<namespace key="1" case="case-sensitive">Diskuse</namespace>
<namespace key="2" case="first-letter">Uživatel</namespace>
<namespace key="3" case="first-letter">Diskuse s uživatelem</namespace>
<namespace key="4" case="case-sensitive">Thewoodcraft.org</namespace>
<namespace key="5" case="case-sensitive">Diskuse k Thewoodcraft.org</namespace>
<namespace key="6" case="case-sensitive">Soubor</namespace>
<namespace key="7" case="case-sensitive">Diskuse k souboru</namespace>
<namespace key="8" case="first-letter">MediaWiki</namespace>
<namespace key="9" case="first-letter">Diskuse k MediaWiki</namespace>
<namespace key="10" case="case-sensitive">Šablona</namespace>
<namespace key="11" case="case-sensitive">Diskuse k šabloně</namespace>
<namespace key="12" case="case-sensitive">Nápověda</namespace>
<namespace key="13" case="case-sensitive">Diskuse k nápovědě</namespace>
<namespace key="14" case="case-sensitive">Kategorie</namespace>
<namespace key="15" case="case-sensitive">Diskuse ke kategorii</namespace>
<namespace key="30" case="case-sensitive">Organizace</namespace>
<namespace key="31" case="case-sensitive">Organizace talk</namespace>
<namespace key="40" case="case-sensitive">Synfig</namespace>
<namespace key="41" case="case-sensitive">Synfig talk</namespace>
<namespace key="106" case="case-sensitive">Form</namespace>
<namespace key="107" case="case-sensitive">Form talk</namespace>
<namespace key="250" case="case-sensitive">Stránka</namespace>
<namespace key="251" case="case-sensitive">Diskuse ke stránce</namespace>
<namespace key="252" case="case-sensitive">Index</namespace>
<namespace key="253" case="case-sensitive">Diskuse k indexu</namespace>
<namespace key="274" case="case-sensitive">Widget</namespace>
<namespace key="275" case="case-sensitive">Widget talk</namespace>
<namespace key="1198" case="case-sensitive">Translations</namespace>
<namespace key="1199" case="case-sensitive">Translations talk</namespace>
</namespaces>
</siteinfo>
<page>
<title>AccessControl</title>
<ns>0</ns>
<id>11484</id>
<revision>
<id>26913</id>
<parentid>26912</parentid>
<timestamp>2019-07-01T14:00:01Z</timestamp>
<contributor>
<username>Keny</username>
<id>1</id>
</contributor>
<comment>Tato verze je označená pro překlad</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="97293"><languages/>
<translate>
<!--T:1-->
Software ''MediaWiki'', na kterém běží projekty Wikimedia Foundation, nebyl navržen jako sofistikovaný CMS systém<tvar|ref><ref name="cms" /></>.</translate>
<ref follow="cms">
<translate>
<!--T:2-->
Charakteristickým rysem CMS (zkratka z angl. "'''C'''ontent '''M'''anagement '''S'''ystem") systémů pro správu obsahu jsou mechanismy, které pracují s širokou škálou nastavení uživatelských práv.</translate>
</ref>
<translate>
<!--T:15-->
{{<tvar|1>elink|http://www.mediawiki.org/wiki/Extension:AccessControl</>|AccessControl}} tento nedostatek řeší. {{<tvar|2>link|accesscontrol-history</>|Vyvíjí se od září 2009}} a tohle je manuál k připravované verzi 3.0.
</translate>
* <translate><!--T:16--> ''AccessControl'' umožňuje aby v rámci jedné instance ''MediaWiki'' mohl existovat veřejně dostupný obsah, i privátní stránky. V tomto manuálu najdete návod, {{<tvar|1>link|public-and-private</>|jak udržovat veřejný i neveřejný obsah v rámci jedné stránky}}.</translate>
* <translate><!--T:17--> ''AccessControl'' umožňuje, aby sami autoři obsahu rozhodovali o tom, kdo bude mít možnost zasahovat do obsahu stránky na které pracují. A tuhle ochranu stránky mohou kdykoliv jednoduchým způsobem zapnout, nebo naopak vypnout.</translate>
* <translate><!--T:18--> I když je ''AccessControl'' založen na kontrole obsahu stránky, nepřináší z hlediska výkonu zvýšenou zátěž webového serveru. Spíš naopak. {{<tvar|1>link|how-accesscontrol-work</>|Obsah stránky kontroluje ještě před zpracováním do HTML kódu}} a jeho odesláním na stranu webového prohlížeče klienta. Pokud nemá uživatel na chráněnou stránku přístup, je ihned {{<tvar|2>link|accesscontrol-info</>|přesměrován}}.</translate>
* <translate><!--T:19--> ''AccessControl'' je naprogramován tak, aby nešlo žádným doposud známým způsobem získat obsah chráněné stránky, takže wiki může obsahovat i důvěrný obsah. Umí ošetřit i {{<tvar|1>link|accesscontrol-export</>|situace, pro které standardní ''MediaWiki'' žádné jiné bezpečnostní mechanismy nemá}}.</translate>
* <translate><!--T:21--> Chráněné stránky lze v kombinaci s dalšími možnostmi, které nabízí ''MediaWiki'' a její rozšíření, využívat jako {{<tvar|1>link|mediawiki-private-channel</>|skvělý prostředek k privátní komunikaci}}, kdy si uživatel sám rozhoduje, co bude sledovat a jakým způsobem má být o novinkách informován.</translate>
__TOC__
<translate>
<!--T:121-->
'''Kdo všechno používá ''AccessControl?'''</translate>
: <translate> <!--T:122--> Pokud vás zajímá, jaké verze rozšíření ''AcccessControl'' se používají a kde, podívejte se na {{<tvar|1>elink|https://wikiapiary.com/wiki/Extension:AccessControl</>|WikiApiary}}.</translate>
: <translate><!--T:123--> Pokud budete mít pocit, že je tam těch webů málo, uvědomte si že ''AccessControl'' používají především wiki, které nejsou tak otevřené jako projekty Wikimedia Foundation. Většinou ani nemají veřejně dostupné API a obvykle omezují i přístup na speciální stránky, přes které lze získat data o jejich konfiguraci.</translate>
: <translate><!--T:124--> Pokud wiki registrovaná na WikiApiary používá ''AccessControl'' a má na některé stránce, přes kterou robot doluje data, neplatný odkaz<tvar|ref><ref name="invalid-link" /></>, nezjistí se o její konfiguraci také nic, protože robot skončí na {{<tvar|1>link|accesscontrol-info</>|stránce s oznámením, že anonymní uživatelé mají přístup omezen}}.</translate>
<ref follow="invalid-link">
<translate>
<!--T:125-->
To je případ {{<tvar|1>elink|https://wikiapiary.com/wiki/DCEwiki</>|DCEWiki}}, která je zaregistrovaná na WikiApiary, ale na stránce, kterou vrací API má několik neplatných odkazů. Proto ji v {{<tvar|2>elink|https://wikiapiary.com/wiki/Extension:AccessControl</>| přehledu webů co používají rozšíření ''AccessControl''}} nenajdete i přes to, že ho používá.</translate>
</ref>
{{note|<translate><!--T:20-->
O spolehlivosti rozšíření ''AccessControl'' svědčí fakt, že za celou dobu reálného nasazení na wiki {{<tvar|1>elink|https://support.dce.felk.cvut.cz/</>|DCE FEL ČVUT}} nebyl zaznamenán jediný případ vandalizace stránek či zneužití (nebo úniku) chráněného obsahu.
</translate>}}
{{warn|<translate><!--T:69--> Prostudujte důkladně tento manuál. Je důležité znát jak ''AccessControl'' funguje, '''abyste byli připraveni''' řešit situaci, pokud by někdo udělal chybu, nebo se pokusil {{<tvar|1>link|template-atack</>|zneužít některou šablonu}}.</translate>}}
{{info|<translate><!--T:22-->
'''Budete-li spokojeni s tím, jak funguje rozšíření ''AccessControl'' na vaší wiki, můžete na oplátku {{<tvar|1>elink|https://www.thewoodcraft.org/wiki/index.php/Donate</>|podpořit TheWoodcraft.Org}}'''. Je to wiki, na které se verze 3.0 vyvíjela a kterou financuje jeho autor.</translate>}}
{{anchor|config-basic}}{{anchor|mediawiki-groups}}
<translate>
== Základní konfigurace ''MediaWiki'' před instalací rozšíření ''AccessControl'' == <!--T:23-->
<!--T:24-->
<tvar|1>{{elink|https://www.mediawiki.org/wiki/Manual:What_is_MediaWiki%3F|''MediaWiki''}}</>, software na kterém běží <tvar|2>{{elink|https://en.wikipedia.org/wiki/History_of_Wikipedia|Wikipedia}}</>, vznikla proto, aby pomohla přivést na svět do nedávné doby utopickou myšlenku, že kvalitní obsah internetových stránek může vznikat vzájemnou spoluprací všech uživatelů, tedy včetně těch anonymních. Díky benevolentnímu přístupu se brzy stala oblíbeným terčem psychopatů a frustrátů, jejichž největší radostí je – škodit. Proto se zavedly uživatelské skupiny, vybavené různými pravomocemi, a byrokratické mechanismy pro jejich udílení.
<!--T:3-->
Standardní ''MediaWiki'' pracuje hlavně s následujícími skupinami:
</translate>
; <translate><!--T:4--> anonymní uživatel</translate> : <translate><!--T:5--> Je každý nepřihlášený uživatel, který je v rámci ''MediaWiki'' identifikován svou IP adresou.</translate>
; <translate><!--T:6--> přihlášený uživatel</translate> ('user') : <translate><!--T:7--> Tuhle skupinu má každý registrovaný a řádně přihlášený uživatel. V rámci ''MediaWiki'' je identifikován svým uživatelským jménem.</translate>
; <translate><!--T:8--> administrátor</translate> ('sysop') : <translate><!--T:9--> Uživatel, který je v této skupině může vykonávat činnosti nutné při údržbě wiki (například mazat stránky, vracet změny, atp.). Zařazen může být do této skupiny trvale, ale i dočasně.</translate>
; <translate><!--T:10--> byrokrat</translate> ('bureaucrat') : <translate><!--T:11--> Pouze uživatel z této skupiny může udílet práva ostatním uživatelům.</translate>
; 'bot' : <translate><!--T:12--> Je to skupina vyhrazená pro uživatele, kteří často editují obsah wiki, případně vykonávají hromadné operace pomocí nejrůznějších skriptů. Některé operace uživatelů z této skupiny se nezaznamenávají, aby se tím zbytečně nezatěžoval systém ''MediaWiki'' a jejich akce probíhaly co nejrychleji. Kdyby tomu tak nebylo, mohly by na stránce <tvar|1>[[Special:Recentchanges]]</> uniknout pozornosti jiné, nežádoucí změny.</translate>
<translate>
<!--T:13-->
Existují i další skupiny, které si pro svou potřebu zavádějí některá rozšíření. Ovšem vždy platí, že v rámci skupiny mají všichni členové stejná práva.</translate> <translate><!--T:14-->
Pokud chcete mít v MediaWiki kromě veřejně dostupného obsahu také obsah určený vyhrazený jen pro vybranou množinu uživatelů, zjistíte, že systém uživatelských práv založený na členství ve skupinách nestačí.
</translate>
{{note|<translate><!--T:25-->
Pokud nemá ''MediaWiki'' nainstalované rozšíření ''AccessControl'', lze zabránit zobrazení obsahu stránky jedině tak, že se přístup do vybraného jmenného prostoru povolí pouze pro vybranou skupinu uživatelů a všem ostatním se do něj přístup preventivně zakáže. Je to nešťastné řešení:
</translate>
* <translate><!--T:26--> Anonymní uživatel žádnou skupinu práv, na kterou by bylo možné aplikovat nějaká pravidla nemá, takže veškerý obsah wiki (nebo vyhrazeného jmenného prostoru) by musel být vyhrazen jen pro přihlášené uživatelé s přiřazenou skupinou. Ale jinak by se na něj nikdo jiný nedostal. Ovšem {{<tvar|1>link|accesscontrol-export</>|existují metody, jakými se dá u wiki co nepoužívá ''AccessControl'' k neveřejnému obsahu dostat}}.</translate>
* <translate><!--T:27--> Z dlouhodobého hlediska je to na nic, protože dříve či později do wiki, nebo jejího vyhrazeného jmenného prostoru, ke kterému bude mít přístup jen omezený okruh uživatelů, nebude nikdo psát.</translate>
* <translate><!--T:28--> Většina uživatelů nemá zájem věnovat svůj čas tvorbě obsahu, který nelze veřejně prezentovat. A obsah, na který se nedá dostat má pro ostatní nulovou informační hodnotu – stejně jako kdyby neexistoval.</translate>
* <translate><!--T:29-->
Postupně přestanou takové stránky navštěvovat i ti co volali po jejich uzavření, protože nebudou mít obsah, který by je zajímal a kvůli němuž by se na ně vraceli. A wiki bez obsahu ztrácí smysl.
</translate>}}
<translate>
<!--T:30-->
'''Wiki je živý organismus''', jemuž dává smysl všeobecné sdílení informací, které obsahuje. '''Každý''' (tedy i anonymní) uživatel '''by měl mít možnost číst její obsah''', pokud tomu nebrání licence, nebo smluvní podmínky provozovatele wiki. A pokud uživatel splní podmínky vyžadované při registraci uživatelského účtu, tak by měl mít možnost – již jako přihlášený uživatel – participovat i na tvorbě obsahu.
<!--T:31-->
Proto je prvním řádkem v konfiguračním souboru <tvar|config><code>LocalSettings.php</code></> povolena akce <tvar|action>'view'</> pro všechny uživatele – včetně těch anonymních. A těmi ostatními preventivně zakázány akce, přes které by mohli uživatelé anonymně zapisovat do vaší wiki:
</translate>
<pre>
$wgGroupPermissions['*']['read'] = true;
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['writeapi'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['createtalk'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
</pre>
{{info|<translate><!--T:32--> S takovým nastavením bude mít k editaci stránek vaší instance ''MediaWiki'' přístup pouze registrovaný a řádně přihlášený uživatel – to je výchozí předpoklad k tomu, aby rozšíření ''AccessControl'' fungovalo jak má.</translate>}}
<translate>
<!--T:33-->
Pokud máte pocit, že je to vůči anonymním návštěvníkům příliš restriktivní, uvědomte si, že '''vaše wiki nejspíš nikdy nebude mít dostatek bdělých administrátorů''', co by včas odstranili nežádoucí změny ze strany vandalů! A jenom '''vy jste zodpovědní za důvěryhodnost vaší instance ''MediaWiki'' a za kvalitu jejího obsahu ručíte svým jménem'''. Pro malé wiki tedy vždy platí následující premisa:
</translate>
<blockquote><big><translate><!--T:34--> To, že se uživatel může podílet se na tvorbě obsahu není právo, ale privilegium!</translate></big></blockquote>
{{anchor|config-extra}}
<translate>
=== Další doporučené nastavení pro <tvar|config><code>LocalSettings.php</code></> === <!--T:35-->
<!--T:36-->
Rozšíření ''AccessControl'', je primárně určeno k ochraně obsahu a přístup na speciální stránky ''MediaWiki'' neřeší. Nicméně není důvod k tomu, aby na většinu z nich měl anonymní uživatel přístup.
<!--T:37-->
Doporučuji tedy omezit přístup na speciální stránky. Existuje na to rozšíření ''MediaWiki''
<tvar|1>{{link|extensions|DisableSpecialPages}}</>, ale je dlouhodobě neudržované, takže pokud chcete, můžete použít v konfiguraci vašeho souboru <tvar|config><code>LocalSettings.php</code></> stejný kód, jako se používá na wiki <tvar|2>{{elink|https://www.thewoodcraft.org|TheWoodcraft.org}}</></translate>:
<pre>
…
function disableSomeSpecialPages(&$list) {
global $wgUser;
if ( is_array( $wgUser->mRights ) && in_array( 'createpage', $wgUser->mRights ) ) {
return true;
} else {
if ($wgUser->mId > 0 ) {
return true;
}
unset($list['Mypage']);
foreach( array(
'Activeusers',
'Allmessages',
'Allpages',
'Ancientpages',
'ApiSandbox',
'Blankpage',
'BlockList',
'Boilerplates',
'Booksources',
'BrokenRedirects',
'CategoryTree',
'ComparePages',
'Contributions',
'CreateCategory',
'CreateClass',
'CreateForm',
'CreateTemplate',
'Deadendpages',
'DoubleRedirects',
'ExpandTemplates',
'Export',
'ExportTranslations',
'Fewestrevisions',
'FileDuplicateSearch',
'Forms',
'FormEdit',
'FormStart',
'LanguageStats',
'LinkSearch',
'ListDuplicatedFiles',
'Listfiles',
'Listgrouprights',
'Listredirects',
'Listusers',
'Log',
'Lonelypages',
'Longpages',
'ManageMessageGroups',
'MediaStatistics',
'MessageGroupStats',
'MIMEsearch',
'Mostcategories',
'Mostimages',
'Mostinterwikis',
'Mostlinked',
'Mostlinkedcategories',
'Mostlinkedtemplates',
'Mostrevisions',
'Movepage',
'MultiPageEdit',
'Newimages',
'Newpages',
'PagesWithProp',
'PagesWithoutScans',
'PageTranslation',
'Preferences',
'Prefixindex',
'Protectedpages',
'Protectedtitles',
'RandomInCategory',
'Randompage',
'Randomredirect',
'Redirect',
'ResetTokens',
'RunQuery',
'SearchTranslations',
'Shortpages',
'Statistics',
'SupportedLanguages',
'TrackingCategories',
'Translate',
'Translations',
'TranslationStats',
'TranslationStash',
'Uncategorizedcategories',
'Uncategorizedimages',
'Uncategorizedpages',
'Uncategorizedtemplates',
'Unusedimages',
'Unusedtemplates',
'Wantedfiles',
'Wantedpages',
'Wantedtemplates',
'Watchlist',
'Withoutinterwiki'
) as $i ) {
unset( $list[$i] );
}
}
return true;
}
$wgHooks['SpecialPage_initList'][]='disableSomeSpecialPages';
…
</pre>
{{anchor|config-extension-rights}}
<translate>
=== Rozšířená práva specifická pro vybraná rozšíření === <!--T:38-->
</translate>
{{warn|<translate><!--T:39--> Také práva která do vaší ''MediaWiki'' přidávají některá rozšíření,mohou ve výsledku – díky svému výchozímu nastavení – představovat bezpečnostní "díru", přes kterou by mohl neoprávněný uživatel získat chráněný obsah – například rozšíření <tvar|1>{{link|extensions|Translate}}</>. Používáte-li takové rozšíření, zkontrolujte zda umožňuje anonymně výtáhnout z vaší wiki nějaký obsah. A pokud ano, omezte preventivně jeho práva pro anonymní uživatele.</translate>}}
<translate>
<!--T:40-->
U wiki <tvar|1>{{elink|https://www.thewoodcraft.org|TheWoodcraft.org}}</> bylo nutné nastavit tyto proměnné:</translate>
<pre>
// Extension:LookupUser
$wgGroupPermissions['*']['lookupuser'] = false;
// Extension:Translate
$wgGroupPermissions['*']['pagetranslation'] = false;
</pre>
{{anchor|accesscontrol-install}}
<translate>
== Instalace == <!--T:41-->
<!--T:42-->
Instalace rozšíření ''AccessControl'' je velice jednoduchá:
</translate>
# <translate><!--T:43--> Naklonujte z git repozitáře, nebo vybalte ze staženého tarballu, zdrojové kódy do adresáře <tvar|path><code>extensions/AccessControl/</code></> vaší instance ''MediaWiki''.</translate>
# <translate><!--T:44--> Pak do konfiguračního souboru <tvar|config><code>LocalSettings.php</code></> přidejte následující řádku</translate>:
<pre>wfLoadExtension( 'AccessControl' )</pre>
<translate>
<!--T:45-->
Jakmile soubor <tvar|config><code>LocalSettings.php</code></> uložíte, začne vaše wiki ''AccessControl'' používat.
== Jak pracuje ''AccessControl'' se stránkou ''MediaWiki'' == <!--T:46-->
<!--T:47-->
Veškerý obsah ''AccessControl'' kontroluje na straně serveru – dřív, než z něj parser ''MediaWiki'' vygeneruje HTML kód, který bude doručen webovému prohlížeči na straně klienta. Pokud během kontroly ''AccessControl'' narazí na kód, který mu sdělí že je obsah stránky chráněný, zkontroluje jestli uživatel, který požadavek odeslal, může přistupovat k obsahu.
</translate>
; editors : <translate><!--T:48--> mají plná práva na všechny operace</translate>
; visitors : <translate><!--T:49--> mají právo pouze na čtení obsahu</translate>
<translate>
<!--T:50-->
Pokud nemá právo ani na čtení <tvar|1>('''visitors''')</>, přeruší ''AccessControl'' další zpracování stránky a {{<tvar|2>link|accesscontrol-info</>|místo ní vrátí HTML kód stránky s upozorněním}}, že se pokusil dostat na stránku ke které nemá přístup.</translate>
{{anchor|how-accesscontrol-detect}}
<translate>
== Jak se ''AccessControl'' dozví, že jde o chráněnou stránku? == <!--T:51-->
<!--T:52-->
Existují tři možné způsoby, jimiž lze ''AccessControl'' informovat o tom, že je obsah stránky chráněný:
</translate>
# <translate><!--T:53--> {{<tvar|1>link|accesscontrol-template-options</>|Parametrem šablony}}</translate>
# <translate><!--T:54--> {{<tvar|1>link|accesscontrol-template-name</>|Názvem použité šablony}}</translate>
# <translate><!--T:55--> {{<tvar|1>link|accesscontrol-tag</>|Použitím tagu accesscontrol}}</translate>
{{note|<translate><!--T:57--> Na jedné stránce můžete použít různé způsoby jak přes rozšíření ''AccessControl'' předat informaci, koho může pustit na stránku, ale '''rozhodne to, které bude mít poslední slovo!'''. Můžete toho s výhodou využít pokud chcete mít v rámci jedné stránky obsah pro různé skupiny uživatelů i veřejný obsah. Je doporučeno, místo tagu <tvar|tag><code><accesscontrol></code></> {{<tvar|1>link|template-is-better</>|používat šablonu}}.</translate>}}
{{anchor|accesscontrol-template-options}}
<translate>
=== Šablony a jejich parametry === <!--T:56-->
<!--T:58-->
Klíčovou roli u ''MediaWiki'' hraje transkluze<tvar|ref1><ref name="transclusion" /></>. Jde o mechanismus, který umožňuje vložit do stránky obsah z jiné stránky. Nejčastěji se takto vkládají stránky ze jmenného prostoru Šablona (<tvar|1>''Template''</>), kterým lze předávat další argumenty, jimiž lze modifikovat wiki kód vygenerovaný na základě jejich obsahu<tvar|ref2><ref name="extensions" /></>.</translate>
<ref follow="extensions">
<translate>
<!--T:59-->
Pokud bude mít vaše instance wiki nainstalovaná {{<tvar|1>link|extension</>|doporučená rozšíření}}, bude možné, abyste pomocí šablon realizovali co vás napadne.</translate>
</ref>
<ref follow="transclusion">
<translate>
<!--T:60-->
Transkluzi lze v podstatě považovat za elektronickou verzi kompilace, kdy se obsah jednoho dokumentu sestavuje z dokumentů jiných. Pojem jako takový <tvar|1>(''transclusion'')</> je novotvar, který údajně vymyslel americký sociolog, filozof a průkopník informačních technologií <tvar|2>{{elink|https://cs.wikipedia.org/wiki/Ted_Nelson|Ted Nelson}}</> viz internetový článek {{<tvar|3>elink|https://www.bitoff.cz/nmi18/</>|Web, který nebyl}} z r. 2018 (autor: Jan Vlnas)</translate>
</ref>
<translate>
<!--T:61-->
Oddělovačem argumentů předávaných šabloně je svislítko <tvar|1><code>|</code></>. Prvním argumentem je vždy jméno stránky (šablony), jejíž obsah se má zpracovat a za ním mohou (ale nemusí) následovat další.</translate>
<pre>{{template | A | B | C }}</pre>
<translate>
<!--T:62-->
Argumenty se zpracovávají postupně.</translate>
<pre>{{template | 1 = A | 2 = B | 3 = C }}</pre>
<translate>
<!--T:63-->
A mohou být také očíslované, nebo pojmenované.</translate>
<pre>{{template | first = A | second = B | etc = C }}</pre>
<translate>
<!--T:64-->
Pokud jsou očíslované, nebo pojmenované, mohou být předány v libovolném pořadí.</translate>
<pre>{{template | 2 = B | 3 = C | 1 = A }}</pre>
{{note|<translate><!--T:65--> Pokud šablona s pojmenovaným či očíslovaným argumentem nepracuje, tak předanou hodnotu ignoruje. To znamená, že se ani nezobrazí ve výsledném HTML kódu stránky a právě toho využívá ''AccessControl''.</translate>}}
<translate>
==== Rozdíl mezi parametrem a atributem ==== <!--T:66-->
<!--T:67-->
Tohle '''není''' atribut identifikovaný parametrem!</translate>
<pre>{{template | editAllowedUsers TestUser }}</pre>
<translate>
<!--T:68-->
'''Tohle je parametr'''. Za parametrem následuje znak <tvar|1><code>=</code></> a po něm seznam jmen uživatelů, resp. skupin uživatelů.</translate>
<pre>{{template | editAllowedUsers = TestUser }}</pre>
{{anchor|template-atack}}
<translate>
=== Ochrana stránky parametrem šablony === <!--T:70-->
</translate>
{{warn|1=&nbsp;
* '''<translate><!--T:71--> Hlídejte si, aby někdo nezneužil některý z parametrů s nimiž pracuje ''AccessControl'' u některé často používané šablony!</translate>'''
: <translate><!--T:72--> Pokud nějaký vtipálek umístí do některé hojně používané šablony parametr, který ''AccessControl'' vyhodnotí jako ochranu stránky a všechny stránky, na kterých bude použitá, se už nikdo mimo něj nedostane! – ani administrátoři, pokud bude mít globální proměnná <tvar|1>{{link|$wgAdminCanReadAll}}</> hodnotu <tvar|2>'''false'''</>.</translate>
: <translate><!--T:73--> Proto byste měli preventivně veškeré šablony po dokončení {{<tvar|1>link|page-lock</>|zamykat}}, aby je pak mohli editovat jen prověření uživatelé.</translate>
: <translate><!--T:74--> Pokud se stane, že některý z uživatelů '''záměrně''', něco takového udělá, měli byste ho nekompromisně zablokovat, aby nemohl dál škodit.</translate>
* <translate><!--T:75--> Dávejte pozor také při psaní jmen – parametrů, stránek i uživatelů.</translate>
: <translate><!--T:76--> Stačí překlep, vynechané písmeno, nebo zaměnit malé písmeno za velké či naopak a ochrana přes AccessControl nebude fungovat!</translate>
: <translate><!--T:77--> Tomu se můžete vy a uživatelé vaší wiki vyhnout, pokud budete využívat rozšíření <tvar|1>{{link|extensions|Page Form}}</> a uživatelské seznamy spravovat přes formuláře.</translate>}}
<translate>
<!--T:78-->
''AccessControl'' pracuje s kódem stránky dřív, než dojde na zpracování šablony. Takže, pokud '''u libovolné šablony''' najde v atributech některý z následujících '''parametrů''', ví, že bude obsahovat informace, přes které získá {{<tvar|1>link|accesscontrol-accesslist</>|seznam uživatelů}}, se kterým bude dál pracovat.</translate>
: {{link|isProtectedBy}} – <translate><!--T:79--> seznam skupin uživatelů</translate>
:: {{link|readOnlyAllowedGroups}} – <translate><!--T:80--> skupiny uživatelů pouze s read-only přístupem</translate>
::: {{link|editAllowedGroups}} – <translate><!--T:81--> skupiny uživatelů s právem k editaci</translate>
:::: {{link|readOnlyAllowedUsers}} – <translate><!--T:82--> seznam uživatelů co mohou obsah stránek pouze číst</translate>
::::: {{link|editAllowedUsers}} – <translate><!--T:83--> seznam uživatelů s právem k editaci</translate>
<translate>
<!--T:84-->
V rámci jedné šablony lze použít všechny uvedené parametry najednou, proto bylo pomocí odsazení naznačeno, jakou mají z hlediska práv vůči sobě hierarchické postavení. Více se dozvíte v popisu jednotlivých parametrů, kde budou uvedeny i příklady.</translate>
==== editAllowedUsers ====
<translate>
<!--T:85-->
Použitím tohoto parametru se z obyčejné šablony stane {{<tvar|1>link|accesslist</>|seznam uživatelů}}. Každý '''uživatel''', jehož jméno bude uvedeno v tomto parametru '''bude mít právo k editaci stránky''' do níž bude šablona s tímto parametrem vložena. A také všech stránek, které ji použijí v parametru <tvar|2>{{link|isProtectedBy}}</>. Je-li uvedeno uživatelů víc, oddělují se jejich uživatelská jména čárkou.</translate>
<pre>…
| editAllowedUsers = Kili, Quido
…</pre>
==== isProtectedBy ====
<translate>
<!--T:86-->
Přes tento parametrem získá ''AccessControl'' seznam wiki stránek, ze kterých se pokusí vytáhnout informace o tom, kdo a jaký typ přístupu má na stránku povolen. Pokud se v tomto seznamu objeví uživatelské jméno, prohledá ''AccessControl'' výchozí jmenné prostory a s největší pravděpodobností narazí na uživatelskou stránku ze které se pokusí získat seznam uživatelů. I když je to pochopitelně možné, '''nedoporučuji''' využívat pro seznamy uživatelů uživatelské stránky!
<!--T:87-->
Takový seznam je totiž u nové verze automaticky chráněn přes ''AccessControl'' a tudíž by se na ni už nikdo jiný nedostal. Pokud chcete, použijte pro seznam uživatelů, kterým budete chránit jiné stránky raději stránku z hlavního jmenného prostoru, nebo podstránku. Takto by vypadalo využití podstránky <tvar|1><code>accesslist</code></> uživatele <tvar|2><code>TestUser</code></>, se skupinou uživatelů při ochraně stránky jiné.
</translate>
<pre>…
| isProtectBy = TestUser/accesslist
…</pre>
{{anchor|template-tag-difference}}
{{note|<translate><!--T:88--> U původního řešení ochrany stránek, pomocí tagu <tvar|tag><code><accesscontrol></code></>, se pracovalo s tím, že obsahem tagu je řetězec, ve které se mohou vyskytovat jako konkrétní uživatelská jména, tak jména stránek, jejichž obsah se lze interpretovat jako seznam uživatelů. Stejným způsobem se přistupuje i k obsahu prvního atributu šablony, která má v názvu řetězec accesscontrol, protože jde pouze o alternativu vůči tagu <tvar|tag><code><accescontrol></code></> na bázi šablony.</translate>}}
==== readOnlyAllowedGroups ====
<translate>
<!--T:89-->
Tento parametr má větší váhu než <tvar|1>{{link|isProtectedBy}}</>. I on akceptuje pouze seznam skupin uživatelů. Ovšem všichni '''uživatelé z těchto skupin budou mít právo''' stránku, do které je šablona s tímto parametrem vložena, '''pouze číst'''. A to bez ohledu na to, jestli mají v uživatelských seznamech předaných přes parametr <tvar|1>{{link|isProtectedBy}}</> právo k editaci, nebo jen ke čtení.
<!--T:90-->
Proto by měl být u šablony s tímto parametrem použitý i parametr <tvar|1>{{link|editAllowedUsers}}</> přinejmenším se jménem editora stránky. Jinak se k ní nedostane nikdo jiný než administrátor.
</translate>
==== editAllowedGroups ====
<translate>
<!--T:91-->
Rovněž tento parametr akceptuje pouze seznamy skupin uživatelů. Na rozdíl od uživatelů ze seznamu v parametru <tvar|1>{{link|readOnlyAllowedGroups}}</> '''uživatelé z těchto skupin mají právo stránku editovat'''. A to bez ohledu na to jaká mají výchozí práva v rámci skupin, předaných parametrem <tvar|2>{{link|isProtectedBy}}</>, i to že jsou uvedeni ve skupině, která má právo pouze ke čtení obsahu.</translate>
<pre>…
| isProtectBy = test-user
| readOnlyAllowedGroups = groupB
| editAllowedGroups = groupA
…</pre>
<translate>
<!--T:92-->
Pokud by v případě, který demonstruje výše uvedený kód byl uživatel jak ve skupině <tvar|1><code>groupB</code></>, která má právo jen na čtení, i ve skupině <tvar|2><code>groupA</code></>, bude mít jeho právo na editaci přednost!</translate>
==== readOnlyAllowedUsers ====
<translate>
<!--T:93-->
Na druhou stranu se hodí, když máme možnost ''zabanovat'' uživatele, ze skupiny, která má právo na editaci stránky. A právě k tomu je určen tento parametr. Pokud v něm ''AccessControl'' najde jméno aktuálního uživatele, nastaví mu pouze read-only přístup. Bez ohledu na to, jestli má v rámci některé skupiny předané parametrem <tvar|1>{{link|isProtectedBy}}</> nebo <tvar|2>{{link|editAllowedGroups}}</> nastavené právo k editaci.
==== Další zpracování šablony ==== <!--T:94-->
<!--T:95-->
Pokud ''AccessControl'' na základě obsahu uvedených parametrů vyhodnotí, že jako uživatel máte na stránku přístup povolen, klidně se mohou tyhle parametry v použité šabloně dál zpracovat.</translate>
<pre>{{Template accesscontrol
| Tahle stránka žádný externí seznam nepoužívá, protože se chrání sama
| editAllowedUsers = TestUser
| Tohle je seznam uživatelů podle verze 3.0
}}</pre>
{{note|<translate><!--T:96--> I když šablona obsahuje v názvu řetězec 'accesscontrol', je místo prvního atributu zpracován obsah parametru <tvar|1>{{link|editAllowedUsers}}</>, protože parametry šablon mají vyšší prioritu. Ke stránce na níž by se vyskytla šablona v této formě by tedy mohl, přistupovat pouze jediný uživatel <tvar|2><code>TestUser</code></>. Nikdo jiný by se na ni nedostal.</translate>}}
{{anchor|accesscontrol-tag}}
<translate>
=== Ochrana stránky pomocí tagu === <!--T:97-->
</translate>
{{warn|<translate><!--T:98--> Podpora tagu <tvar|tag><code><accesscontrol></code></> byla do verze 3.0 byla zahrnuta pouze proto, aby bylo možné nahrazovat původní ochranu stránek postupně a nebylo nutné měnit obsah již existujících stránek. '''Nepoužívejte ho u nových stránek!''' A pokud na něj u některé stránky narazíte, {{<tvar|2>link|accesscontrol-template-name</>|nahraďte ho šablonou}}.</translate>}}
<translate>
<!--T:99-->
Starší verze rozšíření ''AccessControl'' používaly k ochraně stránky ''pouze'' párový tag <tvar|tag><code><accesscontrol></code></>.
<!--T:100-->
Pokud použijete na stránce místo šablony párový tag <tvar|tag><code><accesscontrol></code></> s vaším uživatelským jménem – budete mít přístup na takovou stránku jen vy. Vložený kód bude vypadat podobně, jako u následující ukázky. Jen místo <tvar|1><code>Username</code></> musíte napsat svoje uživatelské jméno.</translate>
<pre><accesscontrol>Username</accesscontrol></pre>
<translate>
<!--T:101-->
Pokud chcete, aby smělo na tuhle stránku víc uživatelů, máte dvě možnosti. Buď můžete přidat jejich uživatelská jména, jako v následujícím příkladu.</translate>
<pre><accesscontrol>Vaše uživatelské jméno, TestUser, Další uživatel</accesscontrol></pre>
<translate>
<!--T:102-->
Nebo si můžete použít {{<tvar|1>link|accesscontrol-accesslist</>|seznam uživatelů}}. Pokud si vytvoříte takový seznam na stránce <tvar|test>[[test-page]]</>, bude to vypadat takto:</translate>
<pre><accesscontrol>test-page</accesscontrol></pre>
<translate>
<!--T:103-->
Použití seznamu je výhodné, pokud stejná skupina uživatelů pracuje s větším množstvím chráněných stránek.</translate>
{{anchor|template-is-better}}{{anchor|accesscontrol-template-name}}
<translate>
=== Ochrana obsahem prvního parametru šablony === <!--T:104-->
</translate>
{{warn|<translate><!--T:105--> Stránku chráněnou šablonou s řetězcem accesscontrol v názvu nelze použít jako {{<tvar|1>link|not-accesslist</>|seznam uživatelů}} k ochraně jiných stránek!</translate>}}
<translate>
<!--T:106-->
Ochrana stránek pomocí tagu <tvar|tag><code><accesscontrol></code></> má jednu velkou nevýhodu – chráněné stránky je obtížné vyhledat. Naopak stránku, která používá šablonu lze dohledat velice snadno, pokud použijete následující postup:</translate>
# <translate><!--T:107--> Vyhledejte si na stránce <tvar|1>[[Special:Templates]]</> (pokud šablona existuje) nebo <tvar|2>[[Special:Wantedtemplates]]</> (pokud šablona ještě neexistuje) jméno šablony a klikněte na něj.</translate>
# <translate><!--T:108--> Pokud jste přihlášený uživatel, dostanete se i na editační stránku neexistující šablony (anonymní uživatel je v takovém případě automaticky přesměrován pryč).</translate>
# <translate><!--T:109--> Povšimněte si, odkazu ''Odkazuje sem'' (''Whats link here'') v menu nalevo. Ten vede na speciální stránku <tvar|1>[[Special:Whatlinkshere]]</>.</translate>
# <translate><!--T:110--> Kliknete-li na něj, tak vám okamžitě vygeneruje seznam stránek, které tuto šablonu používají. Pokud k nim máte přístup, bez problémů se na ně přes tyto odkazy dostanete. Pokud ne, {{<tvar|1>link|accesscontrol-info</>|přesměruje vás to pryč}}.</translate>
<translate>
<!--T:111-->
Proto byla do nové verze rozšíření AccessControl 3.0, zahrnuta alternativa, která umožňuje postupně nahrazovat tag <tvar|tag><code><accesscontrol></code></>, který byl nutný u předchozích verzí, šablonou.
<!--T:112-->
Tuto šablonu si můžete pojmenovat jak chcete, důležité je pouze to aby měla v názvu řetězec <tvar|1><code>accesscontrol</code></>. Pokud jí předáte jako první parametr původní obsah tagu <tvar|tag><code><accesscontrol></code></> (seznam uživatelů, resp. uživatelských skupin, oddělených čárkou), bude fungovat stejně, ale můžete přidat i další parametry, které ta šablona může zpracovat, pokud bude mít uživatel na stránku přístup.
<!--T:113-->
Pro ''AccessControl'' není vůbec důležité, jestli tahle šablona bude existovat, nebo ne. Pokud na testovací stránce <tvar|test>[[test-page]]</> tedy použijete místo tagu, nebo parametrizované šablony následující wiki kód, u kterého nahradíte řetězec <tvar|1><code>Username</code></> svým uživatelským jménem, bude ochrana stránky fungovat úplně stejně, jako kdybyste použili tag <tvar|tag><code><accesscontrol></code></>.</translate>
<pre>{{Template accesscontrol|Username}}</pre>
<translate>
<!--T:114-->
Pokud neexistuje šablona <tvar|1><code>Template accesscontrol</code></>, tak se místo ní zobrazuje pouze červeně zbarvený odkaz na neexistující stránku. Nic vám ale nebrání si tuto šablonu založit a využít její obsah. Když kliknete na tento odkaz, můžete napsat do obsahu šablony následující kód. {{<tvar|2>link|only-example-code</>|V žádném případě ho nekopírujte!}}, protože obsahuje skryté znaky, takže by nefungoval:</translate>
<pre>Page {{PAGENAME}} is protected by AccessControl.
Access is allowed for: {{{1|}}}
{{2|}}}</pre>
<translate>
<!--T:115-->
Když se pak vrátíte k testovací stránce <tvar|test>[[test-page]]</>, chráněné přes takto pojmenovanou šablonu a uděláte refresh, zobrazí se vám místo odkazu na neexistující šablonu text, za kterým bude následovat seznam uživatelů a skupin, co budou mít ke stránku přístup.
<!--T:116-->
Pak se odhlašte a {{<tvar|1>link|accesscontrol-test</>|vyzkoušejte}}, jestli ''AccessControl'' stránku zobrazí i pokud se na ni pokusíte přistoupit anonymně. Pokud se na stránku dostanete jako anonymní uživatel, pak to znamená, že jste někde něco nastavili špatně.
<!--T:117-->
Pokud se na ni ovšem nedostanete ani jako přihlášený uživatel, tak je možné, že jste zadali neplatné uživatelské jméno, nebo neplatné jméno uživatelské skupiny – v takovém případě vám nezbyde, než požádat o pomoc uživatele, který je členem skupiny 'sysop', aby vaši chybu opravil.
<!--T:118-->
Také si můžete vyzkoušet, jak to bude vypadat, když šabloně použité na stránce <tvar|test>[[test-page]]</> předáte další parametry:</translate>
<pre>{{Template accesscontrol
| Username, test-page, TestUser, Čtenáři (ro)
| Next content in the second attribute
| Other atributes…
}}</pre>
<translate>
<!--T:119-->
Jak můžete sami vidět, použití šablony otevírá další možnosti.</translate>
{{warn|<translate><!--T:120--> Pokud ale použijete v některém z atributů {{<tvar|1>link|accesscontrol-template-options</>|pojmenovaný parametr, se kterým pracuje ''AccessControl''}}, bude mít jeho zpracování přednost!</translate>}}
{{anchor|how-accesscontrol-work}}
<translate>
=== Jak probíhá kontrola? === <!--T:126-->
</translate>
{{info|<translate><!--T:127--> Tento manuál je připraven tak, abyste si jej mohli naimportovat do svojí wiki a postupně vyzkoušet (a otestovat) přes tuto stránku všechny možné kombinace a způsoby ochrany stránky. Výchozím předpokladem je, že si pro tento účel založíte testovací stránku <tvar|test>[[test-page]]</> s níž budete pracovat.</translate>}}
<translate>
<!--T:128-->
Pokud necháte konfigurační proměnnou <tvar|1>{{link|$wgAccessControlNamespaces}}</> na pokoji, bude ''AccessControl'' při kontrole chráněné stránky, narazí-i na položku, kterou lze interpretovat jako prvek určený k ochraně stránky<tvar|ref><ref name="protection" /></>, která obsahuje řetězec <tvar|2><code>test-page</code></> postupovat takto:
</translate>
# <translate><!--T:129--> Zkontroluje, zdali <tvar|1><code>test-page</code></> není náhodou uživatelské jméno.</translate>
# <translate><!--T:130--> Pak zkontroluje, jestli se tak náhodou nejmenuje nějaká stránka v hlavním jmenném prostoru. Pokud ano, tak se z ní pokusí vydolovat seznam uživatelů.</translate>
# <translate><!--T:131--> Pak se podívá, jestli se taková stránka náhodou nevyskytuje také ve jmenném prostoru vyhrazeném pro uživatelské stránky <tvar|1><code>User:</code></>. Jistě vám v tuto chvíli došlo, že by v takovém případě musel existovat uživatel se jménem <tvar|1><code>test-page</code></>. Pokud by takový uživatel existoval a měl na svojí uživatelské stránce kód, který by bylo možné interpretovat jako seznam uživatelů, tak ho ''AccessControl'' použije.</translate>
<ref follow="protection">
<translate>
<!--T:132-->
Tohle je důležitý bod. Ani zkušeným programátorům MediaWiki na první dobrou nedocvakne, že AccessControl přináší jen minimální zvýšení nároků na výkon webového serveru. '''Pokud stránka ochranu nemá, nedělá AccessControl nic'''. A pokud ochranu má, pokračuje ve zpracování stránky jen pokud nalezne aktuálního uživatele v některé z položek parametrizované šablony, nebo v seznamu oprávněných uživatelů. To proběhne zpravidla dřív, než MediaWiki vrátí nějaký HTML kód. A pokud uživatel nemá právo přistupovat k obsahu chráněné stránky je ihned přesměrován na výchozí stránku s upozorněním, že se pokouší přistupovat na stránku která je chráněná přes AccessControl. To znamená, že pokud není zrovna vypnuto přesměrování (<tvar|1>{{link|$wgAccessControlRedirect}}</> má hodnotu <tvar|2>'''false'''</>) je další zpracování obsahu původní stránky přerušeno.</translate>
</ref>
<translate>
<!--T:133-->
Výsledkem bude ''pole'' (''array''), ve kterém budou dva klíče: <tvar|1>"editors"</> a <tvar|2>"visitors"</>. ''AccessControl'' tohle pole zkontroluje a pokud v něm najde vaše uživatelské jméno, bude pokračovat ve zpracování stránky.
<!--T:134-->
U nové syntaxe, která je založená na parametrech šablony lze může ten, kdo nastavuje přístupová práva ke stránce, zajistit aby se ''AccessControl'' nezdržoval prohledáváním všechny jmenných prostorů nastavených v proměnné <tvar|1>{{link|$wgAccessControlNamespaces}}</>.
<!--T:135-->
Stačí uvést jméno do parametru <tvar|1>{{link|isProtectedBy}}</>, nebo <tvar|2>{{link|readOnlyAllowedGroups}}</> či <tvar|3>{{link|editAllowedGroups}}</> uvést jméno stránky s uživatelským seznamem, včetně jmenného prostoru. Takže uživatel <tvar|4><code>TestUser</code></> by místo svého uživatelského jména napsal do příslušného parametru <tvar|5><code>User:TestUser</code></>. Pochopitelně se tím zkrátí proces zpracování chráněné stránky.
</translate>
{{note|<translate><!--T:136--> Pro anonymní uživatele používá ''MediaWiki'' jako jméno zpravidla IP adresu, ze které na její stránku lezou. Teoreticky by tedy bylo možné povolit přístup anonymnímu uživateli pro jeho IP adresu. V praxi jsem to ale zatím nezkusil.</translate>}}
<translate>
=== Globální konfigurační proměnné === <!--T:137-->
<!--T:138-->
V konfiguračním souboru <tvar|config><code>LocalSettings.php</code></> lze použít u rozšíření ''AccessControl'' verze 3.x následující globální proměnné:
</translate>
==== $wgAccessControlRedirect ====
<translate>
<!--T:139-->
Ve výchozím stavu je hodnota této proměnné <tvar|1>'''true'''</>. Uživatele, který nemá právo přistupovat k obsahu stránky ''AccessControl'' automaticky přesměruje na stránku <tvar|info>[[MediaWiki:Deny_user]]</>, kde se mu zobrazí (lokalizované) oznámení, že se pokusil dostat na chráněnou stránku, ke které nemá přístup povolen. Tohle automatické přesměrování lze vypnout, nastavením proměnné <tvar|2>{{link|$wgAccessControlRedirect}}</> na hodnotu <tvar|3>'''false'''</>:</translate>
<pre>$wgAccessControlRedirect = false;</pre>
<translate>
<!--T:140-->
I když se dá přesměrování vypnout, '''vypínejte ho jen když je to nutné'''. Automatické přesměrování se nepoužívá proto, aby chránilo stránku.
</translate>
* <translate><!--T:141--> Ani při vypnutém přesměrování se nepovolaný uživatel k chráněnému obsahu nedostane.</translate>
* <translate><!--T:142--> Přesměrování šetří čas a výkon webového serveru.</translate>
* <translate><!--T:143--> Je zbytečné aby server pokračoval ve zpracování obsahu stránky, je-li zřejmé, že uživatel na stránku nebude mít přístup. '''Anonymní uživatel "by default" má právo pouze na čtení obsahu veřejně přístupných stránek'''. Na stránkách chráněných přes ''AccessControl'' nemá co pohledávat.</translate>
* <translate><!--T:144--> Taky je zbytečné pokračovat v dalším zpracování obsahu stránky, pokud je zřejmé, že uživatel, přes to že je řádně přihlášený nemá k jejímu obsahu přístup (tedy ani právo ke čtení).</translate>
<span id="accesscontrol-info"></span>
{{warn|<translate><!--T:145--> Pokud ''AccessControl'' zjistí, že uživatel nemá na stránku přístup, přeruší další zpracování původní stránky a okamžitě přesměruje na stránku <tvar|1>[[MediaWiki:Deny_user]]</>, která by měla obsahovat pouze stručné sdělení, že se uživatel pokusil otevřít chráněnou stránku. To je z hlediska wiki nejrychlejší operace, protože se obsah téhle stránky nemění. Je to konečná stanice pro nejrůznější roboty, škodivce a dotěry. Proto '''vypínejte přesměrování, jen když je to nezbytně nutné'''.</translate>}}
{{note|<translate><!--T:146--> Můžete si přesměrování dočasně vypnout třeba pokud vás zajímá jak rychle se zpracuje obsah stránky, nebo když potřebujete vidět kontrolní zprávy, které se generují jako komentáře do HTML kódu. Pokud byste přesměrování nevypnuli, tak byste viděli pouze to, co se týká zpracování cílové stránky <tvar|1>[[MediaWiki:Deny_user]]</>.</translate>}}
==== $wgAdminCanReadAll ====
<translate>
<!--T:147-->
''AccessControl'' je naprogramován tak, aby uživatelé s administrátorskými právy (skupina 'sysop') mohli v případě nouze pomáhat uživatelům, co se díky chybě v nastavení uživatelského seznamu odstřihli od vlastní stránky. Proto je výchozí hodnota této proměnné <tvar|1>'''true'''</>.
<!--T:148-->
Nicméně někomu takto benevolentní přístup nemusí vyhovovat. Obzvláště pokud má ve své wiki obsah, který má být přístupný jenom vybraným uživatelům. Proto zde '''existuje možnost''' tohle '''privilegované postavení administrátorů vypnout''' nastavením.
</translate>
<pre>$wgAdminCanReadAll = false;</pre>
==== $wgAccessToHistory ====
<translate>
<!--T:149-->
Je na vás, jestli povolíte zobrazení historie stránky anonymním uživatelům, nebo ne. Osobně jsem toho názoru, že prohlížení historie stránky a změn wikikódu má být výsadou přihlášeného uživatele. Proto je výchozí nastavení <tvar|1>'''false'''</>.
<!--T:150-->
Přes historii se může uživatel dostat ke zobrazení rozdílových souborů. To je užitečné, pokud chceme umožnit aby si mohl uživatel udělat představu o změnách ke kterým došlo na stránce v průběhu času. Za určitých okolností by však mohlo při zobrazení rozdílových souborů dojít ke kompromitaci obsahu chráněné stránky.
<!--T:151-->
Pokud tedy chcete zobrazování historie anonymním uživatelům povolit, udělejte na svojí ''MediaWiki'' {{<tvar|1>link|accesscontrol-test</>|důkladné testy}}, abyste měli jistotu, že nedojde touto cestou ke kompromitaci chráněného obsahu. Zobrazování historie a rozdílovách souborů povolíte nastavením:
</translate>
<pre>$wgAccessToHistory = false;</pre>
{{note|<translate><!--T:152--> Jestli má tahle wiki povoleno zobrazování historie nebo ne zjistíte klikem [[<tvar|1>AccessControl&action=history</>|na tento odkaz]]. Pokud je zobrazování historie pro anonymní uživatele vypnuté, neuvidíte jako anonymní uživatel nic, pokud nebudete rovnou přesměrováni na stránku <tvar|2>[[MediaWiki:Deny user]]</>.</translate>}}
==== $wgAccessControlNamespaces ====
<translate>
<!--T:153-->
Původně ''AccessControl'' hledal uživatelské seznamy pouze na stránkách v hlavním jmenném prostoru. '''Nová verze 3.x počítá s tím, že se stránky, které obsahují seznamy uživatelů mohou vyskytovat i jinde'''.
<!--T:154-->
Tahle proměnná existuje především proto, aby nebylo nutné pokaždé psát jméno stránky s uživatelským seznamem včetně jmenného prostoru, ve kterém se nachází, v globální proměnné <tvar|1>{{link|$wgAccessControlNamespaces}}</>, je ''pole'' (''array''), s číselnými identifikátory jmenných prostorů, ve kterých se ''AccessControl'' postupně pokusí vyhledat uživatelský seznam identifikovaný jménem stránky, pokud není uveden včetně jména uživatelského prostoru.
<!--T:155-->
Při psaní jména uživatelského prostoru může snadno dojít k chybě. Obzvláště proto, že ''MediaWiki'' má tendenci nahrazovat kanonické názvy lokalizovanou verzí. ''AccessControl'' akceptuje oboje, ale doporučuji místo lokalizované verze jmenného prostoru preferovat kanonické jméno. Takže místo <tvar|1><code>Uživatel:</code></> použijte radši <tvar|2><code>User:</code></>.
<!--T:156-->
Ve výchozím stavu se používají níže uvedené jmenné prostory. Ale můžete si přes <tvar|config><code>LocalSetting.php</code></> nastavit jiné. Postupně se projdou všechny:</translate>
::0 - NS_MAIN <translate><!--T:157--> hlavní jmenný prostor, ze kterého se načítají stránky u kterých není jmenný prostor implicitně uveden</translate>
::12 - NS_USER <translate><!--T:158--> jmenný prostor pro uživatelské stránky; ''AccessControl'' předpokládá, že si každý bude chtít udržovat seznam uživatelů, kterým bude chránit přístup na svoje stránky udržovat v rámci vlastní uživatelské stránky.</translate>
{{anchor|accesscontrol-accesslist}}
<translate>
== Seznamy uživatelů == <!--T:159-->
<!--T:160-->
U nové verze může jako seznam uživatelů posloužit libovolná stránka, na které je použitý minimálně jeden parametr, na jehož základě lze získat seznam uživatelů.
</translate>
{{warn|<translate><!--T:161--> Chráněná stránka je automaticky nedostupná anonymním uživatelům. Pokud chcete publikovat část jejího obsahu veřejně, přečtěte si, {{<tvar|1>link|public-and-private</>|jak mít veřejný i privátní obsah na jedné stránce}}.</translate>}}
{{note|<translate><!--T:162--> Pokud se s rozšířením ''AccessControl'' teprve seznamujete, nedělejte první pokusy s nastavením jako uživatel, který má administrátorská práva (skupina 'sysop') a také nevypínejte přesměrování! Ochráníte se tak před vlastní nepozorností a blbostí, jelikož vám ''AccessControl'' nedovolí uložit stránku, na kterou byste se znovu nemuseli dostat. Pokud se vám něco takového stane, přečtěte si {{<tvar|1>link|accesscontrol-deny</>|co dělat, když se nemůžete dostat na stránku}}.</translate>}}
<translate>
=== Správa uživatelů a skupin přes formulář === <!--T:163-->
<!--T:164-->
Od ''MediaWiki'' verze 1.23+ lze parametrizované šablony editovat díky rozšíření <tvar|1>{{elink|https://www.mediawiki.org/wiki/Extension:Page_Forms|Page Forms}}</>, přes formuláře.</translate>
{{anchor|accesscontrol-old-syntax}}
<translate>
=== Původní syntaxe seznamu uživatelů === <!--T:165-->
</translate>
{{note|<translate><!--T:166--> Nekategorizované {{<tvar|1>link|accesscontrol-accesslist</>|uživatelské seznamy}} u wiki, která používala starou syntaxi se daly vyhledat pouze přes některé uživatelské jméno ze seznamu. Ovšem pokud se hledaný řetězec vyskytoval i na stránce, ke které neměl uživatel přístup, tak se k výsledkům vyhledávání nedostal. To sice pro ''AccessControl'' verze 3.0 neplatí, ale i tak {{<tvar|2>link|template-is-better</>|je lepší místo tagu <tvar|tag><code><accesscontrol></code></> k ochraně obsahu stránky používat šablonu}}.</translate>}}
<translate>
<!--T:167-->
''AccessControl'' verze 3.0 je od základu přepracovaný, nicméně kvůli zpětné kompatibility podporuje i původní syntaxi pro seznamy uživatelů, jaká se používala do verze ≤ 2.6.
<!--T:168-->
Tato syntaxe používá jako seznam uživatelů stránku, na které se jméno každého uživatele, co má být členem skupiny, umístí na řádku, která začíná znakem pro odrážku (znak <tvar|1>'*'</>). Za ním následuje mezera a teprve pak uživatelské jméno.
<!--T:169-->
Pro testovacího uživatele se jménem <tvar|1><code>TestUser</code></> tedy vypadá příslušný řádek takto:</translate>
<pre>* TestUser</pre>
<translate>
<!--T:170-->
Pokud má mít uživatel právo pouze na čtení obsahu, přidejte za jeho jméno řetězec <tvar|1><code>(ro)</code></>:</translate>
<pre>* TestUser (ro)</pre>
<translate>
<!--T:171-->
Takto vytvořený seznam uživatelů je obyčejná wiki stránka, která sama o sobě žádným způsobem chráněna není.
<!--T:172-->
''AccessControl'' však umožňuje, aby se stránka ochránila sama. Takže pokud chcete udělat a vyzkoušet takový seznam ze stránky <tvar|test>[[test-page]]</>, měl by vypadat její obsah takto. Pouze s tím rozdílem, že místo jména testovacího uživatele <tvar|1><code>TestUser</code></> použijete své uživatelské jméno.</translate>
<pre>* TestUser
<accesscontrol>test-page</accesscontrol>
[[Category:AccessLists]]</pre>
{{note|<translate><!--T:173--> Kategorizace uživatelských seznamů tohoto typu je nutná proto, že se z hlediska obsahu neliší od běžné wiki stránky a tím pádem je není snadné dodatečně vyhledat.</translate>}}
{{anchor|page-lock}}
<translate>
=== Uzamčení stránky pomocí standardního mechanismu MediaWiki === <!--T:174-->
<!--T:175-->
Kupodivu některé uživatele rozšíření ''AccessControl'' nikdy nenapadlo, že by mohla být stránka chráněna sama sebou. Většinou se pokoušeli vyřešit ochranu seznamů uživatelů jinými, někdy zcela nesmyslnými způsoby.
<!--T:176-->
Jsou však situace, kdy je lepší zvolit jinou ochranu stránky než přes ''AccessControl''.
<!--T:177-->
Jedním z nástrojů, jakým ''MediaWiki'' čelí vandalismu, je zamykání stránek. Ovšem tuhle výsadu mají pouze administrátoři, {{<tvar|1>link|mediawiki-groups</>|uživatelé ze skupiny 'sysop'}}, která disponuje právo k zablokování editace stránky (<tvar|2><code>block</code></>). Pokud uživatel mezi ně nepatří, tak tímto způsobem stránku chránit nemůže.
<!--T:178-->
Jsou ovšem situace, kdy je lepší preventivně možnost editace stránky omezit. Typicky v případě šablony. Prostřednictvím hojně používané šablony, lze totiž zneužitím rozšíření ''AccessControl'' zakázat přístup všem uživatelům. Proto je vhodné její obsah preventivně uzamknout ('protect'). Její obsah bude dál veřejně přístupný, ovšem měnit její kód bude moci jen ten, kdo bude mít rovněž adminstrátorská práva ('sysop').
<!--T:179-->
Ostatně, změny obsahu šablony by se měly testovat na jiné, testovací šabloně a teprve po jejich důkladném otestování kopírovat do šablony, která se již používá.</translate>
{{anchor|namespace-private}}
<translate>
==== Umístěním stránky do vyhrazeného jmenného prostoru ==== <!--T:180-->
<!--T:181-->
Kromě standardních jmenných prostorů, si můžete nadefinovat v rámci konfiguračního souboru <tvar|config><code>LocalSettings.php</code></> i své vlastní jmenné prostory. Dají se využít mnoha způsoby. A mimo jiné se dá u nich nastavením proměnné <tvar|1>{{link|$wgNamespaceProtection}}</> upravit přístupová práva tak, aby kupř. na editaci stránek v tomto jmenném prostoru měly právo jen vybrané skupiny uživatelů ''MediaWiki''.
<!--T:182-->
Následující ukázkový kód demonstruje, jak si můžete vytvořit vlastní jmenný prostor <tvar|1>NS_PRIVATE</> s ID <tvar|2>1234</>, ve kterému by mohli dělat změny pouze uživatelé s přiděleným právem <tvar|3><code>userrights</code></> (což jsou ve výchozím stavu pouze byrokraté):</translate>
<pre>define("NS_PRIVATE", 1234);
$wgExtraNamespaces =
array(NS_PRIVATE => "private"
);
$wgNamespaceProtection[NS_PRIVATE] = array( 'userrights' );</pre>
<translate>
<!--T:183-->
Pokud chcete takovým způsobem omezit práva u jiných, již existujících jmenných prostorů, stačí pouze změnit výchozí nastavení jmenného prostoru.
</translate>
{{anchor|accesscontrol-test}}
<translate>
= Testy = <!--T:184-->
<!--T:185-->
'''Každý''', kdo chce svoje stránky chránit přes rozšíření ''AccessControl'', '''by měl znát způsoby, jimiž se lze dostat ke chráněnému obsahu MediaWiki, pokud je někde chyba'''.
<!--T:186-->
Pokud máte tuhle stránku naimportovanou vlastní instance ''MediaWiki'', můžete využít níže uvedené odkazy k testování.
<!--T:187-->
Založte si stránku <tvar|test>[[test-page]]</> a na ní si vyzkoušejte jak si nastavit ochranu stránky, {{<tvar|1>link|accesscontrol-accesslist</>|jak se udělá uživatelský seznam}}, jak se s ním pracuje, a {{<tvar|3>link|how-accesscontrol-detect</>|jak s jeho pomocí chránit jiné stránky}}. Je důležité abyste pochopili, jak to všechno funguje.
</translate>
{{warn|<translate><!--T:188--> Dejte si pozor na to, abyste pro sebe na stránce <tvar|test>[[test-page]]</> nastavili svoje jméno, protože jinak se vám stane, že se odstřihnete i od této stránky. Po skončení testů doporučuji její obsah vymazat, aby ji mohl k testování využít i někdo jiný.</translate>}}
<translate>
<!--T:189-->
Při testování vašich stránek doporučuji používat dva různé webové prohlížeče. Přes jeden přistupujte na stránku jako přihlášený uživatel, a přes ten druhý testujte paralelně anonymní přístup.
<!--T:190-->
Pokud budete chtít zjistit co v průběhu zpracování stránky rozšíření ''AccessControl'' dělá, můžete využít debugovací zprávy připravené v kódu. Poznáte je podle toho, že za nimi na řádku následuje komentář s klíčovým slovem DEBUG.
<!--T:191-->
Tyto zprávy svůj obsah vypisují do stránky přes funkci <tvar|1><code>printDebug()</code></>. Na stránce nejsou vidět. Dostanete se k nim, jen když se podíváte do HTML kódu stránky.
<!--T:192-->
Připravte se na to, že některé zprávy mohou vyvolat chybu PHP. Nemusíte si toho všímat. Po zakomentování kontrolního výpisu zase zmizí.
</translate>
{{info|<translate><!--T:193--> Pokud přijdete na nějaký další postup, který zde není uveden a by mohl vést k potenciální kompromitaci stránky, neváhejte a napište!</translate>}}
<translate>
== Vyhledávání == <!--T:194-->
<!--T:195-->
Za normálních okolností, '''vyhledání najde hledaný řetězec i na stránkách chráněných přes ''AccessControl'''''. Pokud však uživatel nemá právo přistupovat k obsahu stránky, bude místo kontextu zobrazen náhradní text. A pokud se pokusí přejít na tuto stránku, bude automaticky přesměrován pryč.
== Přístup k wiki kódu a historii stránky == <!--T:196-->
<!--T:197-->
Pokud nezměníte výchozí hodnotu konfigurační proměnné <tvar|1>{{link|$wgAccessToHistory}}</> na <tvar|2>'''true'''</>, tak se anonymní uživatel k historii stránky, byť není chráněna rozšířením ''AccessControl'', nedostane. A nedostane se ani k jejímu wikikódu.
<!--T:198-->
Jediná historie změn, u které je žádoucí zachovat přístup i pro anonymní uživatele, je na stránce <tvar|1>[[Special:Recentchanges]]</> (historie posledních změn). Odkazy, přes které lze zobrazit rozdílové změny (''diff'') jsou pak buď neaktivní, nebo jsou při pokusu o zobrazení rozdílových změn, není-li vypnuto přesměrování přes proměnnou <tvar|2>{{link|$wgAccessControlRedirect}}</>, přesměrováni na stránku <tvar|info>[[MediaWiki:Deny user]]</>.
</translate>
{{info|1=<translate>
<!--T:199-->
Je pouze na vás, jestli výchozí restriktivní přístup zmírníte, nebo ne. Na historii a obsah chráněných stránek se touto cestou nikdo nedostane. Nicméně opakované procházení historie a generování rozdílových stránek může zbytečně zatěžovat váš webový server – to je důvod, proč není zobrazování historie stránek, wiki kódu stránek a rozdílových souborů ve výchozím stavu povoleno.
<!--T:200-->
'''Pokud používáte ''AccessControl'', můžete bez obav přístup k historii povolit'''. Jakmile dotěrný robot narazí na některou z chráněných stránek, bude okamžitě odklizen na {{<tvar|1>link|accesscontrol-info</>|informační stránku}}, která ukončí další procházení obsahu.</translate>}}
<translate>
=== Dostane se anonymní uživatel ke zobrazení rozdílových změn? === <!--T:201-->
<!--T:202-->
To, můžete snadno a rychle zjistit. [[<tvar|1>Special:Diff/{{REVISIONID:Main Page}}/next</>|Tenhle odkaz vede na rozdílový soubor, který byl vytvořen při poslední úpravě hlavní stránky této wiki]].
# '''přihlášený uživatel''' by se měl ke zobrazení rozdílů bez problému dostat
# '''anonymní uživatel''' by měl být přesměrován pryč
</translate>
{{note|<translate><!--T:203--> Pokud vám vrtá hlavou, jakým způsobem se dostalo do této stránky ID revize vaší hlavní stránky, tak jste právě narazili na tajemství kouzelných slůvek – <tvar|1>{{elink|https://www.mediawiki.org/wiki/Help:Magic_words|Magic Words}}</>. Kód, který vygeneroval předchozí odkaz vypadá takto:</translate>
<pre>[[Special:Diff/{{REVISIONID:Main Page}}/next|<translate><!--T:204--> tenhle odkaz, který zobrazí rozdílový soubor k poslední úpravě hlavní stránky této wiki</translate>]]</pre>}}
<translate>
=== Je zde povolen přístup ke speciální stránce, která zobrazuje rozdíly v obsahu stránek? === <!--T:205-->
<!--T:206-->
Od MediaWiki 1.23+ je k dispozici {{<tvar|1>elink|https://www.mediawiki.org/wiki/Help:Diff</>|speciální stránka}}, přes kterou si lze zobrazit obarvený výstup, podobný jako vrací utilita <tvar|2>'''diff'''</>, pro libovolnou revizi obsahu.
<!--T:207-->
Je-li tahle stránka dostupná zde, zjistíte přes tento link: <tvar|diff>[[Special:Diff]]</>.
# '''Pokud není zakázán''' přístup na stránku <tvar|diff>[[Special:Diff]]</> (viz výše, {{<tvar|1>link|config-extra</>|doporučené nastavení konfiguračního souboru <tvar|config><code>LocalSettings.php</code></>}}), zobrazí se formulář, do kterého lze zadat ID libovolné revize.
# '''Pokud je zakázán''' přístup na stránku <tvar|diff>[[Special:Diff]]</>, bude anonymní uživatel přesměrován pryč, resp. mu ''MediaWiki'' sdělí, že žádná taková stránka neexistuje.
=== Zobrazení wikikódu stránky === <!--T:208-->
<!--T:209-->
Zobrazení zdrojového kódu stránky je pro anonymní uživatele povoleno pouze, je-li proměnná <tvar|1>{{link|$wgAccessToHistory}}</> nastavena na hodnotu <tvar|2>'''true'''</>. Pak můžete na stránkách použít následující formát odkazu, kterým se anonymnímu uživateli zobrazí editační okno stránky s jejím wikikódem, ovšem '''bez možnosti editace obsahu'''.
<!--T:210-->
Pokud bude editace obsahu možná, máte nejspíš chybu v konfiguraci souboru <tvar|config><code>LocalSettings.php</code></>.
<!--T:211-->
'''Zobrazení wiki kódu nechráněné Hlavní stránky (Main Page)'''
<!--T:212-->
Chcete-li umožnit anonymním uživatelům aby si mohli kopírovat obsah stránek vaší wiki do vlastní instance ''MediaWiki'', můžete jim pomoci tak, že přidáte na své stránce odkaz na příslušnou stránku v následující formě: <tvar|1>
{{SERVER}}{{localurl:Main Page|action=edit}}</>
<!--T:213-->
Pokud je povoleno zobrazování historie a kódu nechráněných stránek. tak se jim po kliku na tento odkaz, otevře editační okno s wiki kódem stránky (v read-only módu), ze kterého si jej mohou zkopírovat.
=== Zobrazení konkrétní verze obsahu nechráněné stránky === <!--T:214-->
<!--T:215-->
I odkazování na konkrétní starší verzi stránky je závislé na nastavení proměnné <tvar|1>{{link|$wgAccessToHistory}}</>. Pokud chcete odkazovat na konkrétní revize obsahu, musí být její hodnota <tvar|2>'''true'''</>. Při volání stránky musíte uvést také číslo konkrétní revize: <tvar|3>
{{SERVER}}{{localurl:Main Page|oldid={{REVISIONID:Main Page}}}}</>
<!--T:216-->
Při volání konkrétní revize přes parametr <tvar|1>"oldid"</> vůbec nezáleží na názvu stránky, předávaném v parametru <tvar|2>"title"</> – '''rozhodující je číslo revize'''.
== Jak otestuji, že moje stránky chrání ''AccessControl''? == <!--T:217-->
<!--T:218-->
Následující série testů předpokládá, že již máte v této wiki vytvořenou testovací stránku <tvar|test>[[test-page]]</>, na kterém jste se učili, jakým způsobem nastavit ochranu stránky. Pro následující test by měla být stránka <tvar|test>[[test-page]]</> nastavená jako '''self-protect'''.
<!--T:219-->
'''Přímý přístup'''<tvar|1>
{{SERVER}}{{localurl:test-page}}</>
: Oprávněnému uživateli se stránka zobrazí. Každý jiný bude přesměrován pryč.
<!--T:220-->
'''Přístup přes akci "view"''' <tvar|1>
{{SERVER}}{{localurl:test-page|action=view}}</>
: Oprávněnému uživateli se stránka zobrazí. Každý jiný bude přesměrován pryč.
<!--T:221-->
'''Přístup přes akci "edit"''' <tvar|1>
{{SERVER}}{{localurl:test-page|action=edit}}</>
: Oprávněnému uživateli se zobrazí editační okno stránky s jejím wiki kódem. Každý jiný bude přesměrován pryč.
<!--T:222-->
'''Přístup přes akci "history"''' <tvar|1>
{{SERVER}}{{localurl:test-page|action=history}}</>
: Oprávněnému uživateli se zobrazí historie chráněné stránky. Každý jiný bude přesměrován pryč.
<!--T:223-->
'''Přístup na prohlížení revizí přes "action" (view)''' <tvar|1>
{{SERVER}}{{localurl:test-page|action=view&oldid={{REVISIONID:test-page}}}}</>
: Oprávněný uživatel může procházet historií revizí. Každý jiný bude přesměrován pryč
<!--T:224-->
'''Přístup k prohlížení revizí stránky přes "direction"''' <tvar|1>
{{SERVER}}{{localurl:test-page|direction=prev&oldid={{REVISIONID:test-page}}}}</>
: Oprávněný uživatel může procházet historií revizí. Každý jiný bude přesměrován pryč.
<!--T:225-->
'''Přístup ke zobrazení rozdílové stránky pro poslední revizi stránky přes "diff"''' <tvar|1>
{{SERVER}}{{localurl:test-page|diff=prev&oldid={{REVISIONID:test-page}}}}</>
: Oprávněný uživatel uvidí aktuální rozdíl v obsahu stránky <tvar|test>[[test-page]]</> při poslední revizí. Každý jiný bude přesměrován pryč.
<!--T:226-->
Pak tuhle sadu testů zopakujte přihlášeni jako uživatel s právem na editaci stránky <tvar|test>[[test-page]]</>.
<!--T:227-->
A potom znovu tuhle sadu testů, ovšem přihlášeni jako uživatel, který sice nemá právo zasahovat do obsahu stránky <tvar|test>[[test-page]]</>, ale může si ho číst.
</translate>
{{warn|<translate><!--T:228-->
Doporučuji vyzkoušet tuhle sérii testů pro situaci, že je self-protect stránky <tvar|test>[[test-page]]</> nastaven:
* pomocí parametrizované šablony
* s využitím staré syntaxe a tagu <tvar|tag><code><accesscontrol></code></>
* s využitím šablony s řetězcem <tvar|1><code>accesscontrol</code></> v názvu
<!--T:229-->
Taky si vyzkoušejte, jaký bude výsledek těchto testů v situaci, kdy je stránka <tvar|test>[[test-page]]</> chráněna přes stránku jinou. Zkuste:
* použít seznam umístěný v hlavním jmenném prostoru (identifikovaný pouze názvem stránky)
* použít seznam, který bude umístěn v jiném jmenném prostoru, nastaveném v proměnné <tvar|1>{{link|$wgAccessControlNamespaces}}</>
* použít seznam, který bude v parametru šablony uveden včetně názvu jmenného prostoru</translate>
}}
<translate>
== Test přístupu ke chráněnému obsahu přes REDIRECT == <!--T:230-->
<!--T:231-->
Přesměrování je základní funkcionalita ''MediaWiki'', která umožňuje přistupovat na stránku přes jiné, alternativní názvy. V podstatě jde o mechanismus podobný transkluzi<tvar|ref><ref name="transclusion" /></>, rozdíl je pouze v tom, že z obsahu na který cílová stránka přes odkazuje rovnou generuje obsah. U starších verzí rošíření ''AccessControl'' bylo možné tímto způsobem obejít ochranu stránky.
<!--T:232-->
Vytvořte si tedy stránku s následujícím obsahem a pak vykoušejte, zda-li se přes ni dostanete jako neoprávěný uživatel na stránku <tvar|test>[[test-page]]</>, nebo ne. <tvar|1><pre>#REDIRECT [[test-page]]</pre></>
</translate>
{{anchor|test-transclusion}}
<translate>
== Test přístupu ke chráněnému obsahu přes transkluzi == <!--T:233-->
=== Vložení chráněné stránky === <!--T:234-->
<!--T:235-->
Pokud vložíte do jiné stránky stránku, která má obsah chráněný přes ''AccessControl'', měly by pro ni automaticky platit stejná práva jako u vložené stránky. Pokud to takhle nefunguje, je to chyba!
<!--T:236-->
Vložení stránky '''z hlavního jmenného prostoru''' vypadá takto: <tvar|1><pre>{{:test-page}}</pre></>
<!--T:237-->
Pokud vkládáte stránku z jiného jmenného prostoru, musíte uvést jeho jméno. I když je možné používat i lokalizované názvy jmenných prostorů, používejte pokud možno kanonické jméno jmenného prostoru, odvozené z angličtiny. <tvar|1><pre>{{:User:TestUser}}</pre></>
=== Vložení chráněné šablony === <!--T:238-->
<!--T:239-->
Transkluze chráněné šablony probíhá (a vypadá) podobně, jako transkluze stránky z hlavního jmenného prostoru. Rozdíl je '''pouze''' v tom, že pokud nepoužijete před názvem stránky <tvar|test>[[test-page]]</> dvojtečku, bude systém ''MediaWiki'' automaticky předpokládat, že jde o stránku ze jmenného prostoru ''Šablona'' (''Template''): <tvar|1><pre>{{test-page}}</pre></>
<!--T:240-->
Pokud by šlo o šablonu, která by byla nějakým způsobem chráněná přes ''AccessControl'', tak se může stránka, do níž je šablona vložena, chovat různě.
=== Vícenásobná transkluze === <!--T:241-->
<!--T:242-->
Vícenásobná transkluze může za určitých okolností vést k tomu, že se pak na stránku nedostane nikdo – ani administrátor ('sysop')! Bohužel nelze k tomu říct nic konkrétního, protože se mi to stalo pouze jednou, při testování během vývoje, takže je dost dobře možné, že příčina byla dávno odstraněna.
<!--T:243-->
Nicméně vícenásobná transkluze funguje i u chráněných stránek, ale moc ji nedoporučuji. Při zřetězení většího počtu chráněných stránek, stačí k odstřižení uživatele (případně celé skupiny) drobná změna práv u některé mezilehlé stránky.
</translate>
Protected - Include - Include
Protected - Changed x Not access
{{anchor|accesscontrol-lsth}}
<translate>
== Pozor na rozšíření ''Labeled Section Transclusion'' == <!--T:244-->
<!--T:245-->
<tvar|1>{{link|extensions|Labeled Section Transclusion}}</> je v kombinaci s rozšířením <tvar|2>{{link|extensions|DynamicPageList (third party)}}</> či <tvar|3>{{link|extensions|SubPageList}}</> skvělý nástroj na tvorbu šablon generujících dynamický obsah stránek. Ale pozor na jeho zneužití!
<!--T:246-->
Zneužití nehrozí ze strany anonymních uživatelů, protože nemají právo na editaci stránky. Riziko hrozí pouze se strany přihlášeného uživatele.
<!--T:247-->
Ovšem zas tak jednoduché to není. V podstatě jde o zneužití stejného {{<tvar|1>link|public-and-private</>|mechanismu, jakým lze spravovat na jedné stránce soukromý i veřejný obsah}}.
<!--T:248-->
Pro získání chráněného obsahu stránky by musel útočník znát nejenom jméno chráněné stránky, ale také jméno nechráněné sekce. Pravděpodobnost zneužití je tedy velmi malá, nicméně existuje.
</translate>
{{info|<translate><!--T:249--> Posuzujte pečlivě každého, kdo má zájem o úživatelský účet na vaší wiki. Ten kdo má skutečný zájem o spolupráci by měl mít pro vás pochopení. Ostatně, je mnohem lepší být ostražitý než dodatečně řešit rozsáhlé škody.</translate>}}
{{anchor|accesscontrol-export}}
<translate>
== Test, zdali se dá obsah chráněné stránky získat exportem == <!--T:250-->
<!--T:251-->
Pro usnadnění sdílení obsahu má ''MediaWiki'' k dispozici speciální stránku <tvar|1>[[Special:Export]]</> přes kterou lze vyexportovat obsah wiki stránky, včetně historie a vložených šablon do XML souboru. Obsah tohoto souboru pak lze naimportovat do jiné instance ''MediaWiki'' přes speciální stránku <tvar|2>[[Special:Import]]</>.
<!--T:252-->
Je to užitečný mechanismus, který umožňuje přenášet hotové šablony i manuálové stránky. Bohužel pro wiki s chráněným obsahem představuje určité riziko, pokud má právo k exportu každý přihlášený uživatel.
<!--T:253-->
I ochranu u starší verze rozšíření ''AccessControl'' bylo možné tímto způsobem obejít. U verze 3.0 je tomu ale jinak.
<!--T:254-->
* Stránka se přeskočí '''pokud uživatel na stránku přístup nemá'''.
* Pokud má read-only přístup, tak se vyexportuje pouze aktuální verze stránky.
* Kompletní export, včetně historie změn je přístupný pouze uživatelům s právem k editaci.
</translate>
{{note|<translate><!--T:255--> Import stránky není nutné řešit, přesto, že je možné importem upraveného souboru možné změnit obsah stránky. Jenže to by musela být stránka před importem odstraněna. A pro uživatele který by tohle mohl udělat není problém data změnit jinou, méně komplikovanou cestou.</translate>}}
{{anchor|option-template}}
<translate>
= Tipy = <!--T:256-->
== Nepoužívejte v parametrech které zpracovává rozšíření ''AccessControl'' šablony! == <!--T:257-->
<!--T:258-->
Pokud vás napadlo, že byste místo jména uživatele, nebo uživatelské skupiny použili šablonu, tak si uvědomte, že '''AccessControl pracuje s neinterpretovaným wiki kódem stránky''', takže se pokusí vyhodnotit jako jméno řetězec znaků a ne až výsledek transkluze, jak byste očekávali. Viz příklad: <tvar|1><pre><accesscontrol>{{{nobody}}}</accesscontrol></pre></>
<!--T:259-->
V tomto konkrétním případě by se ''AccessControl'' pokusil vyhledat uživatele, jehož jméno by odpovídalo řetězci <tvar|1><code>{{{nobody}}}</code></>, což je nonsens. Takový uživatel určitě existovat nebude. A u parametrizované šablony by mohl být výsledek zcela nepředvídatelný, takže si ani netroufám domýšlet co by se vlastně ''AccessControl'' pokusil vyhledat. Jisté je pouze to, že to nejspíš existovat nebude, protože ''MediaWiki'' takové řetězce v názvu stránky neakceptuje.
== Když je uvedena jako seznam uživatelů neexistující stránka ( skupina ) nebo neplatné uživatelské jméno == <!--T:260-->
<!--T:261-->
Pokud máte svoji instanci wiki nastavenou jako case-sensitive, tak se může velice snadno stát, že omylem napíšete uživatelské jméno, či jméno stránky se skupinou uživatelů špatně. Stačí zaměnit, přidat, nebo vynechat jedno písmeno a jste v háji.
<!--T:262-->
Pokud se vám něco takového stalo, přečtěte si co dělat {{<tvar|1>link|accesscontrol-deny</>|když se nemůžete dostat na stránku}}.</translate>
{{anchor|only-example-code}}
<translate>
== Nekopírujte slepě kód z těchto stránek! == <!--T:263-->
<!--T:264-->
* Ukázkový wikikód z příkladů na této stránce samozřejmě můžete použít i na vlastní wiki – a v některých případech je to i výslovně doporučeno. ale '''v žádném případě nekopírujte kód z této stránky metodou <tvar|1>''copy & paste''</>'''!. Čekalo by vás totiž nemilé překvapení.
<!--T:265-->
* Aby tahle stránka mohla být veřejně přístupná i na wiki co již používá ''AccessControl'', byla do řetězců, které by za normálních okolností ''AccessControl'' vyhodnotil jako ochraný prvek stránky, doplněna '''neviditelná mezera s nulovou šířkou'''.(<tvar|1>U+200C</> znak <tvar|2><code>ZERO WIDTH NON-JOINER &#8204;</code></>). Jde o netisknutelný znak, který nevidíte ale '''z hlediska PHP jde o regulérní znak, který zabraňuje nežádoucí interpretaci řetězců ať již na straně serveru (parametry pro ''AccessControl''), nebo na straně prohlížeče (HTML entity).
</translate>
{{warn|<translate><!--T:266--> Pokud byste zkopírovali řetězec s neviditelnou mezerou, tak byste pak marně pátrali, proč vám rozšíření ''AccessControl'' nefunguje tak jak má!</translate>}}
{{anchor|not-accesslist}}
<translate>
== Stránka chráněná šablonou s řetězcem accesscontrol v názvu není uživatelský seznam! == <!--T:267-->
<!--T:268-->
Je to použitelné řešení, pokud jednu stránku mezi sebou sdílí pár uživatelů, nebo pokud bychom chtěli mít k dispozici šablonu, pro dočasné omezení přístupu k obsahu stránky. Stačí do prvního parametru šablony nasázet uživatelská jména a hotovo. A pokud chcete, můžete mezi nimi použít i jméno seznamu uživatelů. Kupříkladu uživatelé ze seznamu na stránce Čtenáři by v tomto případě sice nemohli obsah stránky <tvar|test>[[test-page]]</> měnit, nicméně by ho mohli stránku číst a sledovat její změny.
</translate>
{{warn|<translate><!--T:269--> Pokud se ale pokusíte takovou stránku <tvar|test>[[test-page]]</> použít jako uživatelský seznam, tak se odříznete! ''AccessControl'' se z ní sice pokusí vydolovat seznam oprávněných uživatelů – ovšem to se mu podaří jen za předpokladu, že alespoň část obsahu stránky bude odpovídat {{<tvar|1>link|accesscontrol-old-syntax</>|původní syntaxi uživatelských seznamů}}. Pokud se vrátí jen prázdný seznam, tak vám ''AccessControl'' přístup odepře a {{<tvar|1>link|accesscontrol-info</>|přesměruje pryč}}.</translate>}}
{{anchor|accesscontrol-deny}}
<translate>
== Když se nemůžete dostat na stránku == <!--T:270-->
<!--T:271-->
'''Nepanikařte!'''
<!--T:272-->
Pokud jste omylem vyřadili ze sezamu uživatelů oprávěných k editaci stránky svoje jméno a znáte jiného uživatele, který má k editaci stránky povolen přístup, můžete ho zkusit požádat aby vaši chybu napravil a opět vás do seznamu přidal.
<!--T:273-->
Pokud nikoho takového neznáte a žádný jiný uživatel na stránku přístup nemá, musíte požádat o pomoc některého uživatele, co má administrátorská práva ('sysop').
<!--T:274-->
Ten vám ale nepomůže, pokud je privilegované postavení této skupiny uživatelů je přes <tvar|1>{{link|$wgAdminCanReadAll}}</> zakázáno, nebo pokud se vám stane, že podařilo zablokovat přístup ke stránce takovým způsobem, že se na ni nedostane ani administrátor (uživatel ve skupině 'sysop'). Taková situace může nastat např. v případě vícenásobné transkluze.
<!--T:275-->
Pak máte pouze jedinou možnost.
<!--T:276-->
Pokud nemáte přístup ke konfiguračnímu souboru <tvar|config><code>LocalSettings.php</code></>, musíte požádat toho kdo takový přístup má, aby '''dočasně''' rozšíření AccessControl deaktivoval, abyste mohli opravit vadný záznam, nebo aby ho opravil za vás – nejjednodušší a nejrychlejší je, obsah stránky kompletně smazat. Vy si ho pak můžete vydolovat z předchozí revize a jemu to zkrátí na minimum čas potřebný k vyřešení vašeho problému.
</translate>
{{warn|<translate><!--T:277--> Uvědomte si, že '''po dobu kdy není rozšíření AccessControl aktivní''' může každý uživatel číst obsah stránek, které jím mají být chráněny! Proto je žádoucí problém vyřešit co nejrychleji a ihned poté rozšíření AccessControl opět zapnout.</translate>}}
{{anchor|mediawiki-preview}}
<translate>
== Dělejte přes uložením stránky náhledy == <!--T:278-->
<!--T:279-->
Pokud uděláte před uložením obsahu stránky co se má chránit přes ''AccessControl'' náhled. Tak v případě, že jste nevypnuli přesměrování (<tvar|1>{{link|$wgAccessControlRedirect}}</>) a {{<tvar|2>link|mediawiki-groups</>|nepatříte do skupiny 'sysop'}}, dojde okamžitě {{<tvar|3>link|accesscontrol-info</>|k přesměrování}}, které vám zabrání v uložení změn.
<!--T:280-->
To vás ochrání před tím, abyste se "odřízli" od stránky v případě, že byste zapoměli povolit přístup k editaci obsahu stránky sobě.</translate>