From 7c030453fa800b37e256037dae03b92f0cf76056 Mon Sep 17 00:00:00 2001 From: miker Date: Tue, 20 Dec 2005 01:34:57 +0000 Subject: [PATCH] adding open-ils.actor.user.set_groups and open-ils.actor.user.get_groups git-svn-id: svn://svn.open-ils.org/ILS/trunk@2462 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Actor.pm | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm index be94e9f07e..5916f2e4aa 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm @@ -1272,37 +1272,58 @@ sub build_group_tree { __PACKAGE__->register_method( method => "add_user_to_groups", - api_name => "open-ils.actor.user.add_to_groups", + api_name => "open-ils.actor.user.set_groups", notes => <<" NOTES"); Adds a user to one or more permission groups NOTES sub add_user_to_groups { - my( $self, $client, $authtoken, $userid, @groups ) = @_; + my( $self, $client, $authtoken, $userid, $groups ) = @_; + my( $requestor, $target, $evt ) = $apputils->checkses_requestor( $authtoken, $userid, 'CREATE_USER_GROUP_LINK' ); return $evt if $evt; - for my $group (@groups) { + ( $requestor, $target, $evt ) = $apputils->checkses_requestor( + $authtoken, $userid, 'REMOVE_USER_GROUP_LINK' ); + return $evt if $evt; + + $apputils->simplereq( + 'open-ils.storage', + 'open-ils.storage.direct.permission.usr_grp_map.mass_delete', { usr => $userid } ); + + for my $group (@$groups) { my $link = Fieldmapper::permission::usr_grp_map->new; $link->grp($group); $link->usr($userid); + my $id = $apputils->simplereq( 'open-ils.storage', 'open-ils.storage.direct.permission.usr_grp_map.create', $link ); - throw OpenSRF::EX::ERROR - ("Unable to create new permission.usr_grp_map object") unless $id; } return 1; } +__PACKAGE__->register_method( + method => "get_user_perm_groups", + api_name => "open-ils.actor.user.get_groups", + notes => <<" NOTES"); + Retrieve a user's permission groups. + NOTES +sub get_user_perm_groups { + my( $self, $client, $authtoken, $userid ) = @_; + my( $requestor, $target, $evt ) = $apputils->checkses_requestor( + $authtoken, $userid, 'VIEW_PERM_GROUPS' ); + return $evt if $evt; - - + return $apputils->simplereq( + 'open-ils.storage', + 'open-ils.storage.direct.permission.usr_grp_map.search.usr.atomic', $userid ); +} -- 2.43.2