Am 21.03.2012 18:03, schrieb HiddenId:
Hi everybody.
We'd like to create a "Contrib" namespace which will be the only namespace
where users of "user group" will be allowed to edit or create pages.
We've tried the following, but as a result, when we connect to the wiki as a
"user", and when we type Contrib:bobopage in search box, we don't have
access to create nor edit this page, even it is located inside Contrib. What did we wrong
? (the namespace is present in box/menu resulting from search, with all others
namespaces)
Ac
---------------------- here bellow the code inside LocalSettings.php
---------------------------
# Add CUSTOM namespaces and regulate access to
## Add "Contrib" namespace
$wgExtraNamespaces[500] = "Contrib"; # creation of namespace at 500 indice
$wgExtraNamespaces[501] = "Contrib_talk"; # creation of talk namespace at 500 +
1 = 501 indice
define("NS_CONTRIB", 500); # define a constant for the namespace
define("NS_CONTRIB_TALK", 501); # define a constant for the talk namespace
$wgExtraNamespaces[NS_CONTRIB] = "Contrib";
$wgExtraNamespaces[NS_CONTRIB_TALK] = "Contrib_talk";
$wgContentNamespaces[] = 500; # make the namespace content taken in account by statistics
tools
## access to "Contrib" namespace
# block / allow access to custom namespaces defined
$wgGroupPermissions['user']['edit'] = false; # forbid access to users
$wgGroupPermissions['user']['editcontrib'] = true; # give rights to be
"editcontrib" to users
$wgNamespaceProtection[NS_CONTRIB] = array( 'editcontrib' ); # give rights to
"editcontrib" rights owners
you cant deny the edit-right, cause without it, you cant edit anything.
If you want normal user just to be able to edit CONTRIB and
CONTRIB_TALK, you will have to protect every other namespace like this:
$wgNamespaceProtection[NS_MAIN] = array( 'edit-main' );
$wgNamespaceProtection[NS_TALK] = array( 'edit-main' );
and so on.
And then you have to give the "edit-main"-right to every group that
should be able to edit those namespaces:
$wgGroupPermissions['sysop']['edit-main'] = true;
and so on
also, your definition of those custom namespaces is redundant. Just use
this:
define("NS_CONTRIB", 500); # define a constant for the namespace
define("NS_CONTRIB_TALK", 501); # define a constant for the talk namespace
$wgExtraNamespaces[NS_CONTRIB] = "Contrib";
$wgExtraNamespaces[NS_CONTRIB_TALK] = "Contrib_talk";
$wgContentNamespaces[] = 500; # make the namespace content taken in account by statistics
tools
Hope that helps.
Greetings and good luck
stip