• Do not register here on develop.twiki.org, login with your twiki.org account.
• Use View topic Item7848 for generic doc work for TWiki-6.1.1. Use View topic Item7851 for doc work on extensions that are not part of a release. More... Close
• Anything you create or change in standard webs (Main, TWiki, Sandbox etc) will be automatically reverted on every SVN update.
Does this site look broken?. Use the LitterTray web for test cases.

TWiki/UI/Manage.pm contains the following:

    # check permission, user authorized to create webs?
#    TWiki::UI::checkAccess( $session, $webName, $topicName,
#                            'MANAGE', $session->{user} );
    #hack due to late realisation of hacking possibility

This means that WEBMANAGE is useless. This requires a proper fix, either in the code, or in the doc which describes WEBMANAGE.

CC

The complexity here comes from hierarchical wbs. MANAGE is just not useful any more. The ability to create a web needs to be deetrmined by examining the access to the containing web. For example, if a user wants to create Projects.Wheel.Bicycle, then CHANGE on Projects.Wheel should determine their rights.

Just for a moment, let's disregard the distinction between WEB and TOPIC ACLs, and focus on the meaning of CHANGE. If I am changing a topic, I need CHANGE permission on the topic. If I am creating a new topic, or creating a subweb, I need CHANGE permission on the containing web. If I am creating a root web, I need CHANGE permission on some yet-to-be-invented root level (call it ROOT). Currently we have no way of expressing the permissions on this superweb level. Historically, this is what MANAGE did, but it is really obscure.

Since MANAGE has effectively disappeared, I don't propose re-implementing it; let's take the opportunity to do something a bit more consistent and intention-revealing. Taking the levels WEB and TOPIC, it seems natural to add ROOT as a third level.

So I propose that the permissions evaluation order change as follows (changes italicised):

  1. If the user is a super-user
    • access is PERMITTED.
  2. If web and topic are defined and DENYTOPIC is set to a list of wikinames
    • people in the list will be DENIED.
  3. If web and topic are defined and DENYTOPIC is set to empty (i.e. Set DENYTOPIC =)
    • access is PERMITTED i.e no-one is denied access to this topic
  4. If web and topic are defined and ALLOWTOPIC is set
    1. people in the list are PERMITTED
    2. everyone else is DENIED
      • Note that this means that setting ALLOWTOPIC to empty denies access to everyone except admins (unless DENYTOPIC is also set to empty, as described above)
  5. If web is defined and DENYWEB is set to a list of wikinames
    • people in the list are DENIED access
  6. If web is defined and ALLOWWEB is set to a list of wikinames
    • people in the list will be PERMITTED
    • everyone else will be DENIED
      • Note that setting ALLOWWEB to empty denies access to everyone except admins
  7. If web is not defined and DENYROOT is set to a list of wikinames
    • people in the list are DENIED access
  8. If web is not defined and ALLOWROOT is set to a list of wikinames
    • people in the list will be PERMITTED access
    • everyone else will be DENIED access
  9. If you got this far, access is PERMITTED

The call in Manage.pm would become

    # check permission, user authorized to create web here?
    my $parent = undef; # default is root if no parent web
    if( $webName =~ m|^(.*)[./](.*?)$| ) {
        $parent = $1;
    }
    TWiki::UI::checkAccess( $session, $parent, undef,
                            'CHANGE', $session->{user} );
Note that this requires careful examinataion of all existing calls to checkAccess to ensure consistency with the "undef topic means web access" and "undef web means root" rules. This examination is long overdue anyway.

CC

Exhausting, but at least it's done.

CC

Updated headline for release notes

KJL

4.1.0 released

KJL

ItemTemplate
Summary WEBMANAGE permission no longer required (removed)
ReportedBy TWiki:Main.CrawfordCurrie
Codebase 4.0.1, 4.0.2, 4.0.3, 4.0.4, ~twiki4
SVN Range Thu, 29 Jun 2006 build 10750
AppliesTo Engine
Component

Priority Urgent
CurrentState Closed
WaitingFor

Checkins 11363
TargetRelease minor
Edit | Attach | Watch | Print version | History: r8 < r7 < r6 < r5 < r4 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r8 - 2007-01-16 - KennethLavrsen
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback