User:Agbad/SandBox

From MediaWiki.org
Jump to: navigation, search

For the extension "Lock User Space":

Contents

[edit] New SpecialPages list

  • Special:RightsToSpace

[edit] Rights

  • makerightsspace
  • lockspace

[edit] LockUserSpace.php

Index: trunk/extensions/lockspace/LockUserSpace.php
===================================================================
+++ trunk/extensions/lockspace/LockUserSpace.php        (working copy)
@@ +1,55 @@
+<?php
+if( !defind('MEDIAWIKI') ) die( -1 );
+$wgExtensionCredits['specialpage'][] = array(
+       'name' => 'Lock User Space',
+       'author' => 'Agbad',
+       'url' => 'http://www.mediawiki.org/wiki/Extension:Lock_User_Space',
+       'description' => 'Make an option for regular user to (un)protect/delete their pages.',
+       'descriptionmsg' => 'LockUser-msg',
+       'svn-date' => '$LastChangedDate$',
+       'svn-revision' => '$LastChangedRevision$',
+);
+$folder = dirname(__FILE__);
+$wgAvailabelRights[] = 'makerightsspace';
+$wgAvailabelRights[] = 'lockspace';
+$wgGroupPermissions['bureaucrat']['makerightsspace'] = true;
+$wgGroupPermissions['stweard']['makerightsspace'] = true;
+$wgGroupPermissions['lockspace']['lockspace'] = true;
+function addRightOtomat() {
+       global $wgUser;
+       if ( !$wgUser->isBlocked() && !$wgUser->isAnon() && !$wgUser->isAllowed( 'protect' ) && ($wgUser->getOption( 'canlockspace' ) == true or $wgUser->getOptions( 'canlockspace' ) == NULL) ) {
+               $wgUser->addGroup( 'lockspace' );
+       } else {
+               $wgUser->removeGroup( 'lockspace' );
+       }
+}
+$wgSpecialPages['makeRightsSpace'] = 'MakeRightsSpacePage';
+$wgSpecialPagesGroup['makeRightsSpace'] = 'users';
+$wgAutoloadClasses['SpecialMakeRightsSpace'] = '$folder/SpecialMakeRightsSpace.php';
+$wgExtensionMessagesFiles['LockSpace'] = '$folder/LockUserSpace.i18n.php';
+// Logs
+$wgLogTypes[] = 'rightsspace';
+$wgLogNames['rightsspace'] = 'rightsspace-logpage';
+$wgLogHeaders['rightsspace'] = 'rightsspace-logpagetext';
+$wgLogAction['rightsspace/add'] = 'rightsspace-logaddtext';
+$wgLogAction['rightsspace/remove'] = 'rightsspace-logremovetext';
+function RightsForRight() {
+       global $wgTitle, $wgUser;
+       $name = $wgUser->getName();
+       $lockspace = $wgUser->isAllowed( 'lockspace' );
+       if ( $lockspace ) {
+               if( ( $wgTitle->getNameSpace() == NS_USER or $wgTitle->getNameSpace() == NS_USER_TALK ) && $wgTitle->getBasePage() == $name ) {
+                       $wgGroupPermissions['lockspace']['protect'] = true;
+                       $wgGroupPermissions['lockspace']['delete'] = true;
+                       $wgGroupPermissions['lockspace']['autoconfirmed'] = true;
+                       $wgGroupPermissions['lockspace']['editprotected'] = true;
+               } else {
+                       $wgGroupPermissions['lockspace']['protect'] = false;
+                       $wgGroupPermissions['lockspace']['delete'] = false;
+                       $wgGroupPermissions['lockspace']['editprotected'] = false;
+                       if ( !$wgUser->isAllowed( 'move' ) { //If the user isn't old user
+                               $wgGroupPermissions['lockspace']['autoconfirmed'] = false;
+                       }
+               }
+       }
+}

[edit] SpecialMakeRightsSpace.php

Index: trunk/extensions/lockspace/SpecialMakeRightsSpace.php
===================================================================
+++ trunk/extensions/lockspace/SpecialMakeRightsSpace.php       (working copy)
@@ +1,73 @@
+<?php
+if( !defind('MEDIAWIKI') ) die( -1 );
+class SpecialMakeRightsSpace extends SpecialPage {
+       function __construct() {
+               parent::__construct( 'MakeRightsSpace' );
+               wfLoadExtensionMessages( 'LockSpace' );
+       }
+       function execute( $subpages ) {
+               global $wgOut, $wgUser, $wgRequest, $wgAuth, $wgScript;
+               if( !$wgUser->isAllowed( 'makerightsspace' ) ) {
+                       $wgOut->permissionRequired( 'makerightsspace' );
+                       return;
+               }
+               if( $wgRequest->getVal( 'user' ) <> NULL ) {
+                       $user = $wgRequest->getVal( 'user' );
+               } elseif ( $subpages <> NULL ) {
+                       $user = $subpages;
+               } else {
+                       $user = NULL;
+               }
+               if( $wgRequest->getVal( 'action' ) == 'submit' && $wgRequest->wasPosted() ) {
+                       $action = 'submit';
+               } else {
+                       $action = 'work';
+               }
+               if( !is_null( $user ) && !$wgAuth->userExsits( $user ) ) {
+                       $wgOut->showErrorPage( 'lock-nouser', 'lock-nousertext' );
+                       return;
+               }
+               if( is_null( $user ) ) {
+                       $wgOut->showErrorPage( 'lock-notwriteuser', 'lock-notwriteusertext' );
+                       return;
+               }
+               $u = User::newFromName( $user );
+               if( $u->isAllowed( 'protect' ) ) {
+                       $wgOut->showErrorPage( 'lockspace-cant', 'lockspace-canttext' );
+                       return;
+               }
+               if( $action == 'work' ) {
+                       $wgOut->setPageTitle( wfMsg( 'RightsToSpace' ) );
+                       if ( $u->isAllowed( 'lockspace' ) ) {
+                               $before = wfMsg( 'lockuser-true' );
+                               $after = wfMsg( 'lockuser-false-after' );
+                       } else {
+                               $before = wfMsg( 'lockuser-false' );
+                               $after = wfMsg( 'lockuser-true-after' );
+                       }
+                       $linkToUserPage = $wgUser->getSkin()->makeKnownLinkObj( Title::MakeTitle( NS_USER, $u->getName() ), $u->getName() );
+                       $wgOut->addWikiText( wfMsg( 'rightsTolock-text', $linkToUserPage, $before, $after ) );
+                       $form = Xml::openElement( 'form', array( 'method' => 'post', 'action' => $wgScript ) ) .
+                               Xml::inputLabel( wfMsg( 'lockuser-reason' ), 'wpReason', 'wpReason', 100, $reason, array( 'maxlegnth' => '100' ) ) .
+                               Xml::submitButoon( wfMsg( 'lock-submit' ) ) .
+                               Xml::closeElement( 'form' );
+                       $wgOut->addHtml( $form );
+               } elseif( $action == 'submit' ) {
+                       $log = new LogPage( 'rightsspace' );
+                       if ( $u->isAllowed( 'lockspace' ) {
+                               $after = wfMsg( 'lock-removefrom' );
+                               $actionLog = 'remove';
+                               $u->removeGroup( 'lockspace' );
+                               $u->setOption( 'canlockspace', false );
+                       } else {
+                               $after = wfMsg( 'lock-addto' );
+                               $actionLog = 'add';
+                               $u->addGroup( 'lockspace' );
+                               $u->setOption( 'canlockspace', true );
+                       }
+                       $log->addEntry( $actionLog, $wgUser->getUserPage(), wfMsg( 'lockuser-log-change', $after ), $reason );
+                       $wgOut->showErrorPage( 'lockpermissions-complete', 'lockpermissions-completetext' ) //This isn't error page, but I need its format
+                       }
+               }
+       }
+}

[edit] Messages:

Message Name Content (en) Content (he)
LockUser-msg Make an option for regular users to (un)protect/delete their pages. יוצר אפשרות למשתמשים רגילים (לא) להגן/למחוק דפים ממרחב המשתמש שלהם.
rightsspace-logpage Permissions for user space הרשאות למרחב המשתמש
rightsspace-logpagetext ביומן זה מופיעים השינויים בהרשאות של המשתמשים בנוגע למחיקה/הגנה עצמית של דפיהם.
rightsspace-logaddtext כאן מופיעים כל תוספות הרשאת ההגנה/מחיקה עצמית במרחב המשתמש.
rightsspace-logremovetext כאן מופיעים כל הורדות הרשאת ההגנה/מחיקה עצמית במרחב המשתמש.
lock-nouser אין משתמש כזה
lock-nousertext שם המשתמש שבחרת לשנות לו את ההרשאה אינו קיים.
lock-notwriteuser You did'nt choose username לא בחרת שם משתמש
lock-notwriteusertext לא בחרת שם משתמש לשינוי ההרשאות שלו בעניין במחיקה/הגנה במרחב האישי.
lockspace-cant משתמש זה אינו יכול לקבל ההרשאה
lockspace-canttext אין באפשרותך לשנות למשתמש זה את הרשאותיו בנוגע להגנה/מחיקה במרחב האישי.
RightsToSpace הרשאות לנעילה אישית של המרחב האישי
lockuser-true ניתנה ההרשאה
lockuser-false לא ניתנה ההרשאה
lockuser-false-after תילקח למשתמש ההרשאה
lockuser-true-after תינתן למשתמש ההרשאה
rightsTolock-text למשתמש $1 $2 למחוק/להגן על הדפים שבמרחבו האישי. אם ברצונך לשנות את הרשאותיו של המשתמש, אזי $3.
lock-submit Change the permissions שנה את ההרשאות
lock-addto added to הוסיף ל
lock-removefrom removed from הסיר מ
lockuser-reason Reason: סיבה:
lockpermissions-complete השינוי בהרשאות הושלם
lockpermissions-completetext השינוי בהרשאת ההגנה/מחיקה במרחב האישי עברה בהצלחה.
right-lockspace Protect/delete pages in their space. למחוק/להגן על דפים במרחב האישי שלהם.
right-makerightsspace Add/remove the permission "lockspace". הוספה/הסרה של ההרשאה "lockspace".
group-lockspace Admins in their space מפעילים במרחבם
group-lockspsace-member Admin to his space מפעיל למרחבו
grouppage-lockspace Project:Admin to his space Project:מפעיל למרחבו
Personal tools
Namespaces

Variants
Actions
Navigation
Support
Download
Development
Communication
Print/export
Toolbox