From 847c2200305783d6ef3d1fa1d997ec0eff6cd3bf Mon Sep 17 00:00:00 2001 From: tonnesen Date: Sat, 27 Jul 2002 05:30:12 +0000 Subject: [PATCH] New script for setting user flags. Link from member modification page (moremember.pl). --- C4/Circulation/Circ2.pm | 13 +++++-- member-flags.pl | 80 +++++++++++++++++++++++++++++++++++++++++ moremember.pl | 1 + 3 files changed, 92 insertions(+), 2 deletions(-) create mode 100755 member-flags.pl diff --git a/C4/Circulation/Circ2.pm b/C4/Circulation/Circ2.pm index 85b1d61d4c..0e2d2aab00 100755 --- a/C4/Circulation/Circ2.pm +++ b/C4/Circulation/Circ2.pm @@ -110,13 +110,22 @@ sub getpatroninformation { } $sth->execute; my $borrower=$sth->fetchrow_hashref; - my $flags=patronflags($env, $borrower, $dbh); + my $accessflagsint=$borrower->{flags}; + my $accessflagshash; $sth->finish; + my $flags=patronflags($env, $borrower, $dbh); + $sth=$dbh->prepare("select bit,flag from userflags"); + $sth->execute; + while (my ($bit, $flag) = $sth->fetchrow) { + if ($accessflagsint & 2**$bit) { + $accessflagshash->{$flag}=1; + } + } $dbh->disconnect; print O "$borrower->{'surname'} <---\n"; close O; $borrower->{'flags'}=$flags; - return($borrower, $flags); + return($borrower, $flags, $accessflagshash); } diff --git a/member-flags.pl b/member-flags.pl new file mode 100755 index 0000000000..cf79c9d137 --- /dev/null +++ b/member-flags.pl @@ -0,0 +1,80 @@ +#!/usr/bin/perl + +# script to edit a member's flags +# Written by Steve Tonnesen +# July 26, 2002 (my birthday!) + +use strict; + +use C4::Search; +use CGI; +use C4::Output; +use C4::Auth; +use C4::Database; +use C4::Circulation::Circ2; +#use C4::Acquisitions; + +my $input = new CGI; + +my $flagsrequired; +$flagsrequired->{borrowers}=1; +$flagsrequired->{permissions}=1; +my ($loggedinuser, $cookie, $sessionID) = checkauth($input, 0, $flagsrequired); + +my $member=$input->param('member'); +my %env; +$env{'nottodayissues'}=1; +my %member2; +$member2{'borrowernumber'}=$member; +my $issues=currentissues(\%env,\%member2); +my $i=0; +foreach (sort keys %$issues) { + $i++; +} +if ($input->param('newflags')) { + my $dbh=C4Connect(); + my $flags=0; + foreach ($input->param) { + if (/flag-(\d+)/) { + my $flag=$1; + $flags=$flags+2**$flag; + } + } + my $sth=$dbh->prepare("update borrowers set flags=? where borrowernumber=?"); + $sth->execute($flags, $member); + print $input->redirect("/members/"); +} else { + my ($bor,$flags,$accessflags)=getpatroninformation(\%env, $member,''); + + my $dbh=C4Connect(); + my $sth=$dbh->prepare("select bit,flag,flagdesc from userflags order by bit"); + $sth->execute; + my $flagtext=''; + while (my ($bit, $flag, $flagdesc) = $sth->fetchrow) { + my $checked=''; + if ($accessflags->{$flag}) { + $checked='checked'; + } + $flagtext.="$flag$flagdesc\n"; + } + print $input->header(-cookie => $cookie); + print startpage(); + print startmenu('member'); + print qq| +

$bor->{'surname'}, $bor->{'firstname'}

+
+ + + + + $flagtext +
FLAGS
+ +

+ +

+ |; + + print endmenu('member'); + print endpage(); +} diff --git a/moremember.pl b/moremember.pl index 188700bb74..1c52f702f9 100755 --- a/moremember.pl +++ b/moremember.pl @@ -131,6 +131,7 @@ $data->{'borrowernotes'}

+Modify User Flags -- 2.39.5