#!/usr/bin/perl package IkiWiki; use warnings; use strict; use Storable; use IkiWiki; sub userinfo_retrieve () { #{{{ my $userinfo=eval{ Storable::lock_retrieve("$config{wikistatedir}/userdb") }; return $userinfo; } #}}} sub userinfo_store ($) { #{{{ my $userinfo=shift; my $newfile="$config{wikistatedir}/userdb.new"; my $oldmask=umask(077); my $ret=Storable::lock_nstore($userinfo, $newfile); umask($oldmask); if (defined $ret && $ret) { if (! rename($newfile, "$config{wikistatedir}/userdb")) { unlink($newfile); $ret=undef; } } return $ret; } #}}} sub userinfo_get ($$) { #{{{ my $user=shift; my $field=shift; my $userinfo=userinfo_retrieve(); if (! defined $userinfo || ! exists $userinfo->{$user} || ! ref $userinfo->{$user} || ! exists $userinfo->{$user}->{$field}) { return ""; } return $userinfo->{$user}->{$field}; } #}}} sub userinfo_set ($$$) { #{{{ my $user=shift; my $field=shift; my $value=shift; my $userinfo=userinfo_retrieve(); if (! defined $userinfo || ! exists $userinfo->{$user} || ! ref $userinfo->{$user}) { return ""; } $userinfo->{$user}->{$field}=$value; return userinfo_store($userinfo); } #}}} sub userinfo_setall ($$) { #{{{ my $user=shift; my $info=shift; my $userinfo=userinfo_retrieve(); if (! defined $userinfo) { $userinfo={}; } $userinfo->{$user}=$info; return userinfo_store($userinfo); } #}}} sub is_admin ($) { #{{{ my $user_name=shift; return grep { $_ eq $user_name } @{$config{adminuser}}; } #}}} # XXX deprecated, should be removed eventually sub get_banned_users () { #{{{ my @ret; my $userinfo=userinfo_retrieve(); foreach my $user (keys %{$userinfo}) { push @ret, $user if $userinfo->{$user}->{banned}; } return @ret; } #}}} # XXX deprecated, should be removed eventually sub set_banned_users (@) { #{{{ my %banned=map { $_ => 1 } @_; my $userinfo=userinfo_retrieve(); foreach my $user (keys %{$userinfo}) { $userinfo->{$user}->{banned} = $banned{$user}; } return userinfo_store($userinfo); } #}}} 1 me='h' value='master'/>
path: root/tags/5c/99/CAJ+iPVR2K5wBvms3f2a72PHPob+609fuhQ4pcBktzv172TEayQ@mail.gmail.com
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2023-06-27 09:35:08 +0200
committerJonas Smedegaard <dr@jones.dk>2023-06-27 09:35:08 +0200
commitfd54908da2b05c526dd3bee9b6dcd093214a220d (patch)
treec69c845069c99d1d01044f6fafda7c08433329c6 /tags/5c/99/CAJ+iPVR2K5wBvms3f2a72PHPob+609fuhQ4pcBktzv172TEayQ@mail.gmail.com
parentba46132213560cf3335d53560d519c0ec0190da2 (diff)
master
Diffstat (limited to 'tags/5c/99/CAJ+iPVR2K5wBvms3f2a72PHPob+609fuhQ4pcBktzv172TEayQ@mail.gmail.com')