@@ -, +, @@ --- C4/Members.pm | 18 +----------------- members/member-flags.pl | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 22 deletions(-) --- a/C4/Members.pm +++ a/C4/Members.pm @@ -149,12 +149,6 @@ with a true value. See patronflags for more details. -C<$borrower-E{authflags}> is a hash giving more detailed information -about the top-level permissions flags set for the borrower. For example, -if a user has the "editcatalogue" permission, -C<$borrower-E{authflags}-E{editcatalogue}> will exist and have -the value "1". - =cut sub GetMemberDetails { @@ -197,17 +191,7 @@ sub GetMemberDetails { $borrower->{'amountoutstanding'} = $amount; # FIXME - patronflags calls GetMemberAccountRecords... just have patronflags return $amount my $flags = patronflags( $borrower); - my $accessflagshash; - - $sth = $dbh->prepare("select bit,flag from userflags"); - $sth->execute; - while ( my ( $bit, $flag ) = $sth->fetchrow ) { - if ( $borrower->{'flags'} && $borrower->{'flags'} & 2**$bit ) { - $accessflagshash->{$flag} = 1; - } - } $borrower->{'flags'} = $flags; - $borrower->{'authflags'} = $accessflagshash; $borrower->{'is_expired'} = 0; $borrower->{'is_expired'} = 1 if @@ -216,7 +200,7 @@ sub GetMemberDetails { Date_to_Days( Today() ) > Date_to_Days( split /-/, $borrower->{'dateexpiry'} ); - return ($borrower); #, $flags, $accessflagshash); + return ($borrower); } =head2 patronflags --- a/members/member-flags.pl +++ a/members/member-flags.pl @@ -24,7 +24,7 @@ my $input = new CGI; my $flagsrequired = { permissions => 1 }; my $member=$input->param('member'); -my $bor = GetMemberDetails( $member,''); +my $bor = GetMember( borrowernumber => $member ); if( $bor->{'category_type'} eq 'S' ) { $flagsrequired->{'staffaccess'} = 1; } @@ -85,15 +85,25 @@ if ($input->param('newflags')) { print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member"); } else { -# my ($bor,$flags,$accessflags)=GetMemberDetails($member,''); + my $flags = $bor->{'flags'}; - my $accessflags = $bor->{'authflags'}; - my $dbh=C4::Context->dbh(); + my $accessflags; + my $dbh = C4::Context->dbh(); + # FIXME This needs to be improved to avoid doing the same query + my $sth = $dbh->prepare("select bit,flag from userflags"); + $sth->execute; + while ( my ( $bit, $flag ) = $sth->fetchrow ) { + if ( $flags && $flags & 2**$bit ) { + $accessflags->{$flag} = 2; + } + } + my $all_perms = get_all_subpermissions(); my $user_perms = get_user_subpermissions($bor->{'userid'}); - my $sth=$dbh->prepare("SELECT bit, flag FROM userflags ORDER BY bit"); + $sth = $dbh->prepare("SELECT bit, flag FROM userflags ORDER BY bit"); $sth->execute; my @loop; + while (my ($bit, $flag) = $sth->fetchrow) { my $checked=''; if ($accessflags->{$flag}) { --