Mediawiki: Only registered users with email confirmed can edit

5 12 2009

This use case implies that visitors can only see content of the wiki when registered users with confirmed email address can participate in creating content. It also creates a moderator group called ninja with extended rights that you can

Based on mediawiki 1.15.1 default $wgGroupPermissions array. You need to add the following to your LocalSettings.php:

// Get user in emailconfirmed group when loading email confirmation link
$wgAutopromote = array(
    ‘emailconfirmed’ => APCOND_EMAILCONFIRMED,
);
 
$wgGroupPermissions = array();
 
// Group for all visitors
$wgGroupPermissions[‘*’][‘createaccount’]    = true;
$wgGroupPermissions[‘*’][‘read’]             = true;
$wgGroupPermissions[‘*’][‘edit’]             = false;
$wgGroupPermissions[‘*’][‘createpage’]       = false;
$wgGroupPermissions[‘*’][‘createtalk’]       = false;
$wgGroupPermissions[‘*’][‘writeapi’]         = false;
 
// Group for all logged-in accounts
$wgGroupPermissions[‘user’][‘move’]             = false;
$wgGroupPermissions[‘user’][‘move-subpages’]    = false;
$wgGroupPermissions[‘user’][‘move-rootuserpages’] = false; // can move root userpages
$wgGroupPermissions[‘user’][‘movefile’]         = false;  // Disabled for now due to possible bugs and security concerns
$wgGroupPermissions[‘user’][‘read’]             = true;
$wgGroupPermissions[‘user’][‘edit’]             = false;
$wgGroupPermissions[‘user’][‘createpage’]       = false;
$wgGroupPermissions[‘user’][‘createtalk’]       = false;
$wgGroupPermissions[‘user’][‘writeapi’]         = false;
$wgGroupPermissions[‘user’][‘upload’]           = false;
$wgGroupPermissions[‘user’][‘reupload’]         = false;
$wgGroupPermissions[‘user’][‘reupload-shared’]  = false;
$wgGroupPermissions[‘user’][‘minoredit’]        = false;
$wgGroupPermissions[‘user’][‘purge’]            = true; // can use ?action=purge without clicking "ok"
 
// Implicit group for accounts that pass $wgAutoConfirmAge
$wgGroupPermissions[‘autoconfirmed’][‘autoconfirmed’] = true;
 
// Group for accounts with confirmed email addresses
// Users have to register and confirm email to edit
$wgGroupPermissions[‘emailconfirmed’][‘move’]             = true;
$wgGroupPermissions[‘emailconfirmed’][‘move-subpages’]    = true;
$wgGroupPermissions[‘emailconfirmed’][‘move-rootuserpages’] = true; // can move root emailconfirmedpages
$wgGroupPermissions[‘emailconfirmed’][‘movefile’]  = false; // Disabled for now due to possible bugs and security concerns
$wgGroupPermissions[‘emailconfirmed’][‘read’]             = true;
$wgGroupPermissions[‘emailconfirmed’][‘edit’]             = true;
$wgGroupPermissions[‘emailconfirmed’][‘createpage’]       = true;
$wgGroupPermissions[‘emailconfirmed’][‘createtalk’]       = true;
$wgGroupPermissions[‘emailconfirmed’][‘writeapi’]         = false;
$wgGroupPermissions[‘emailconfirmed’][‘upload’]           = true;
$wgGroupPermissions[‘emailconfirmed’][‘reupload’]         = true;
$wgGroupPermissions[‘emailconfirmed’][‘reupload-shared’]  = true;
$wgGroupPermissions[‘emailconfirmed’][‘minoredit’]        = true;
$wgGroupPermissions[‘emailconfirmed’][‘purge’]            = true; // can use ?action=purge without clicking "ok"
 
// Group for moderator accounts
$wgGroupPermissions[‘ninja’][‘ninja’]       = true;
$wgGroupPermissions[‘ninja’][‘block’]       = true;
$wgGroupPermissions[‘ninja’][‘delete’]      = true;
$wgGroupPermissions[‘ninja’][‘editprotected’]   = true; // can edit all protected pages without cascade protection enabled
 
// Users with bot privilege can have their edits hidden
// from various log pages by default
$wgGroupPermissions[‘bot’][‘bot’]              = true;
$wgGroupPermissions[‘bot’][‘autoconfirmed’]    = true;
$wgGroupPermissions[‘bot’][‘nominornewtalk’]   = true;
$wgGroupPermissions[‘bot’][‘autopatrol’]       = true;
$wgGroupPermissions[‘bot’][’suppressredirect’] = true;
$wgGroupPermissions[‘bot’][‘apihighlimits’]    = true;
$wgGroupPermissions[‘bot’][‘writeapi’]         = true;
$wgGroupPermissions[‘bot’][‘editprotected’]    = true; // can edit all protected pages without cascade protection enabled
 
// Most extra permission abilities go to this group
$wgGroupPermissions[’sysop’][‘block’]            = true;
$wgGroupPermissions[’sysop’][‘createaccount’]    = true;
$wgGroupPermissions[’sysop’][‘delete’]           = true;
$wgGroupPermissions[’sysop’][‘bigdelete’]        = true; // can be separately configured for pages with > $wgDeleteRevisionsLimit revs
$wgGroupPermissions[’sysop’][‘deletedhistory’]   = true; // can view deleted history entries, but not see or restore the text
$wgGroupPermissions[’sysop’][‘undelete’]         = true;
$wgGroupPermissions[’sysop’][‘editinterface’]    = true;
$wgGroupPermissions[’sysop’][‘editusercssjs’]    = true;
$wgGroupPermissions[’sysop’][‘import’]           = true;
$wgGroupPermissions[’sysop’][‘importupload’]     = true;
$wgGroupPermissions[’sysop’][‘move’]             = true;
$wgGroupPermissions[’sysop’][‘move-subpages’]    = true;
$wgGroupPermissions[’sysop’][‘move-rootuserpages’] = true;
$wgGroupPermissions[’sysop’][‘patrol’]           = true;
$wgGroupPermissions[’sysop’][‘autopatrol’]       = true;
$wgGroupPermissions[’sysop’][‘protect’]          = true;
$wgGroupPermissions[’sysop’][‘proxyunbannable’]  = true;
$wgGroupPermissions[’sysop’][‘rollback’]         = true;
$wgGroupPermissions[’sysop’][‘trackback’]        = true;
$wgGroupPermissions[’sysop’][‘upload’]           = true;
$wgGroupPermissions[’sysop’][‘reupload’]         = true;
$wgGroupPermissions[’sysop’][‘reupload-shared’]  = true;
$wgGroupPermissions[’sysop’][‘unwatchedpages’]   = true;
$wgGroupPermissions[’sysop’][‘autoconfirmed’]    = true;
$wgGroupPermissions[’sysop’][‘upload_by_url’]    = true;
$wgGroupPermissions[’sysop’][‘ipblock-exempt’]   = true;
$wgGroupPermissions[’sysop’][‘blockemail’]       = true;
$wgGroupPermissions[’sysop’][‘markbotedits’]     = true;
$wgGroupPermissions[’sysop’][‘apihighlimits’]    = true;
$wgGroupPermissions[’sysop’][‘browsearchive’]    = true;
$wgGroupPermissions[’sysop’][‘noratelimit’]      = true;
$wgGroupPermissions[’sysop’][‘movefile’]         = true;
#$wgGroupPermissions['sysop']['mergehistory']     = true;

// Permission to change users’ group assignments
$wgGroupPermissions[‘bureaucrat’][‘userrights’]  = true;
$wgGroupPermissions[‘bureaucrat’][‘noratelimit’] = true;
 




debif v01: debian for the bifferboard

18 10 2009

Here is debif v01 a debian lenny rootfs and a kernel image compiled for the bifferboard. It is an early stage beta, please report problems and suggestions to bifferboard’s mailing list.

Instructions:

  1. Find kernel binary in /boot of the rootfs or inĀ  kenel package and upload it to the bifferboard.
  2. Format a USB drive in ext3 and untar the rootfs to the drive.
  3. Boot the bifferboard conected to your home network. It will get DHCP lease from your router.
  4. ssh root@ipofthebifferboard (password is ‘password’)

Then you have fully functional debian box. Included additional packages are mainly ntpdate and ssh (server and client), but you can install what ever you need from debian repositories using apt-get!





Get NowPlaying Screelets to work with Rhythmbox

21 06 2009

The version of NowPlaying in the package of Screenlets from Ubuntu jaunty 9.04: 0.1.2-ubuntu2 doesn’t work with Rhythmbox.

Julien Lavergne provided a fix which isn’t yet available in the Ubuntu main repository but you can download a fixed version of the package from his PPA: 0.1.2-6~ppa6. Checkout this doc from launchpad to add a PPA and its key to your Ubuntu repositories.

BTW: NowPlayingScreenlet theme pack ship some really nice skins – Vinyl especially – to be untar in: /usr/share/screenlets/NowPlaying/themes





Get your Screenlets to display on all desktops

21 06 2009

In Ubuntu jaunty 9.04 that’s not the default behaviour. So install all the wanted widgets then right click on them and in Window select the following:

Sticky
Widget
Keep below

If as soon as you select the Widget settings the widget disappear it means that the Widget layer plugin is activated in your compiz fusion options. Inactivate this option in CompizConfig Settings Manager.
 
The goal of the widget layer is to have the widgets displayed on top of all your windows when pressing a special key – F9 is the default key.





Get sound playing and recording to work in Skype

21 06 2009

I installed Skype in Ubuntu jaunty 9.04 from medibuntu repository, which have a packaged version available. With default settings no sound could be played nor recorded.

Work around:

in skype’s options -> Sound Devices set the following:

Sound In: hw0
Sound out: pulse
Ringing: pulse





Correct $HOME/.dmrc permissions

21 06 2009

Something modified the permissions of my $HOME/.dmrc file. Consequently an annoying error display at login:

User’s $HOME/.dmrc file is being ignored. This prevents the default language and session from being saved. File should be owned by user and have 644 permissions. User $HOME directory must be owned by user and not writeable by other users.

to fix the permissions:

$ sudo chown -R $USERNAME: $HOME
$ chmod 755 $HOME
$ chmod 644 $HOME/.dmrc





Alternative way to handle hard drives & partitions in Ubuntu

21 06 2009

Just got Ubuntu Jaunty 9.04 installed. I like the following behaviour to be applied to my hard drive partitions and mass storage devices – pen drives, USB disks:

  • Automount all partitions of internal hard disk – without using fstab:

In /etc/hal/fdi/policy/preferences.fdi

<merge key="storage.automount_enabled_hint" type="bool">false</merge>

false -> true

  • No hard drive icons displayed on desktop:

In gconf-editor – Alt+F2 to launch it, go to:

apps -> nautilus -> desktop

uncheck volumes_visible