미디어위키에서 관리자 역할이 없는 모든 사용자에게 모든 관료적 활동(모든 작업, 모든 특수 페이지 등)을 잠그고 싶습니다.
이것이 제가 현재 반자동으로 수행하는 방법입니다.
먼저 설치합니다확장된 잠금.
그런 다음 모든 특수 페이지를 잠그기 전에 모든 작업을 잠급니다. 모든 특수 페이지를 잠그는 것보다 훨씬 쉽기 때문입니다(약 6개의 작업이 있지만 약 150개의 특수 페이지가 있습니다).
모든 작업을 잠그기 위해 LocalSettings.php에 다음을 입력했습니다.
$wgActionLockdown['edit'] = array( 'sysop' );
$wgActionLockdown['delete'] = array( 'sysop' );
$wgActionLockdown['move'] = array('sysop');
$wgActionLockdown['protect'] = array( 'sysop' );
$wgActionLockdown['history'] = array( 'sysop' );
$wgActionLockdown['createtalk'] = array('sysop');
그 후에는 모든 특수 페이지를 잠그는 것이 조금 더 어렵지만 현재는 다음과 같이 자동으로 잠글 수 있습니다.
1)모든 특별 페이지 목록은 다음에서 찾을 수 있습니다.https://en.wikipedia.org/wiki/Help:Special_page
2)쉘(CLUI)에서 stdin으로 페이지를 다운로드하고, grep을 사용하여 이름을 일치시키고, 정렬하여 이름을 필터링하고(중복 항목도 제거함) 출력을 txt 파일로 리디렉션했습니다.
curl https://en.wikipedia.org/wiki/Help:Special_page -s | grep -oP 'Special:\K[a-zA-Z0-9]*' | sort -u > special_page_names.txt
삼)저는 AWK를 사용하여 Extension:Lockdown을 사용하여 각 이름을 차단 템플릿에 넣었습니다.
awk '{ print "$wgSpecialPageLockdown[\47"$0"\47] = array(\47sysop\47);" }' special_page_names.txt > special_page_names_processed.txt
- 출력을 LocalSettings.php에 붙여넣었습니다.
모든 특수 웹 페이지를 잠그는 더 쉬운 방법을 알고 계십니까?
작업 및 특수 페이지 이외의 항목을 잠그면 주의하세요.
답변1
사람들이 로그인할 수 있어야 합니다.
$wgSpecialPageLockdown['사용자 로그인'] = ['*'];
다른 모든 특수 페이지는 차단됩니다.
$wgSpecialPageLockdown[] = array('sysop');