Tags:
create new tag
view all tags

Question

I just installed the latest TWiki on a Dreamhost server. I'm trying to set access control, but am bumping into a problem. I'd appreciate anyone's help, to determine if this is a configuration problem, or a perhaps a known bug/limitation. Thanks in advance:

I am unable to use a variable with ALLOWTOPICCHANGE:

e.g. * Set ALLOWTOPICCHANGE = % TOPIC %

I'd like each user page to be automatically editable ONLY by the user (and superuser, of course).

I have no problem with "* Set ALLOWTOPICCHANGE = JohnDoe, SamAbrams, SamAbramsGroup"

However if I use any type of variable with ALLOWTOPICCHANGE, then EVERYONE but the superuser gets locked out of the user page.

ALTERNATELY, is there a way to have a user's WikiName inserted into the NewUserTemplate? Then I could have "* Set ALLOWTOPICCHANGE = SamAbrams" directly inserted into the new user page at the time of registration. Not an ideal alternative, but better than what I've got so far.

Thanks !

-- SamAbrams - 20 Dec 2003

Answer

First of all, please consider if you really need this access restriction. See TWikiAccessControl

You have not stated the TWiki version you are using. In the latest TWikiBetaRelease you can tweak the NewUserTemplate topic to contain * Set ALLOWTOPICCHANGE = %WIKINAME%, TWikiAdminGroup

The %WIKINAME% gets expanded to the WikiName of the registered user.

You need to patch TWikiRelease01Feb2003 so that the variable gets expanded. In the register script, add the red part to the # create user topic if it does not exist section:

                $row = $repeat;
                $row =~ s/%KEY%/$name/go;
                $row =~ s/%VALUE%/$value/go;
                $before .= $row;
            }
        }
        $text = "$before$after"; 

        # expand limited set of variables
        # NOTE: Keep it in sync with the edit script
        my $today = &TWiki::getGmDate();
        my $userName = $remoteUser || $wikiName;
        $text =~ s/%DATE%/$today/go;
        $text =~ s/%USERNAME%/$userName/go;               # "jdoe"
        $text =~ s/%WIKINAME%/$wikiName/go;               # "JonDoe"
        $text =~ s/%WIKIUSERNAME%/$webName.$wikiName/go;  # "Main.JonDoe"
        $text =~ s/%URLPARAM{(.*?)}%/TWiki::handleUrlParam($1)/geo;  # expand URL parameters
        $text =~ s/%NOP{.*?}%//gos;  # Remove filler: Use it to remove access control at time of
        $text =~ s/%NOP%//go;        # topic instantiation or to prevent search from hitting a template 

        $meta->put( "TOPICPARENT", ( "name" => $TWiki::wikiUsersTopicname ) );
        &TWiki::Store::saveTopic( $webName, $wikiName, $text, $meta, "", 1 );
    }

-- PeterThoeny - 22 Dec 2003

Thank you for your quick reply, Peter ! I was using the February 2003 release, and am just going to update to the latest stable beta release to get the above functionality.

-- SamAbrams - 23 Dec 2003

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r3 - 2003-12-23 - SamAbrams
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2026 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.