Apache-Sling

 view release on metacpan or  search on metacpan

lib/Apache/Sling/GroupMember.pm  view on Meta::CPAN

        my $is_member  = 0;
        foreach my $member ( @{ $group_info->{'members'} } ) {
            if (   $member eq "/system/userManager/user/$exists_member"
                || $member eq "/system/userManager/group/$exists_member"
                || $member eq "$exists_member" )
            {
                $is_member = 1;
                last;
            }
        }
        $success = $is_member;
        $message =
            "\"$exists_member\" is "
          . ( $is_member ? q{} : 'not ' )
          . "in group \"$act_on_group\"";
    }
    else {
        $message = "Problem viewing group: \"$act_on_group\"";
    }
    $group->set_results( "$message", $res );
    return $success;
}

#}}}

#{{{sub del
sub del {
    my ( $group, $act_on_group, $delete_member ) = @_;
    my $res = Apache::Sling::Request::request(
        \$group,
        Apache::Sling::GroupMemberUtil::delete_setup(
            $group->{'BaseURL'}, $act_on_group, $delete_member
        )
    );
    my $success = Apache::Sling::GroupMemberUtil::delete_eval($res);
    my $message = "\"$delete_member\" ";
    $message .= ( $success ? 'deleted' : 'was not deleted' );
    $message .= " from group \"$act_on_group\"!";
    $group->set_results( "$message", $res );
    return $success;
}

#}}}

#{{{ sub help
sub help {

    print <<"EOF";
Usage: perl $0 [-OPTIONS [-MORE_OPTIONS]] [--] [PROGRAM_ARG1 ...]
The following options are accepted:

 --additions or -A (file)       - file containing list of members to be added to groups.
 --add or -a (member)           - add specified member.
 --auth (type)                  - Specify auth type. If ommitted, default is used.
 --delete or -d (member)        - delete specified group member.
 --exists or -e (member)        - check whether specified member exists in group.
 --group or -g (actOnGroup)     - group to perform membership actions on.
 --help or -?                   - view the script synopsis and options.
 --log or -L (log)              - Log script output to specified log file.
 --man or -M                    - view the full script documentation.
 --pass or -p (password)        - Password of user performing actions.
 --threads or -t (threads)      - Used with -A, defines number of parallel
                                  processes to have running through file.
 --url or -U (URL)              - URL for system being tested against.
 --user or -u (username)        - Name of user to perform any actions as.
 --verbose or -v or -vv or -vvv - Increase verbosity of output.
 --view or -V                   - view members of specified group.

Options may be merged together. -- stops processing of options.
Space is not required between options and their arguments.
For full details run: perl $0 --man
EOF

    return 1;
}

#}}}

#{{{ sub man
sub man {

    my ($group_member) = @_;

    print <<'EOF';
group membership perl script. Provides a means of managing membership of groups
in sling from the command line.

EOF

    $group_member->help();

    print <<"EOF";
Example Usage

* Authenticate and add a member testuser to the group with id g-test:

 perl $0 -U http://localhost:8080 -g g-test -u admin -p admin -a testuser

* Authenticate and view members of group with id g-test:

 perl $0 -U http://localhost:8080 -g g-test -u admin -p admin -V

* Authenticate and check whether testuser is a member of group with id g-test:

 perl $0 -U http://localhost:8080 -g g-test -u admin -p admin -e testuser 

* Authenticate and remove testuser from being a member of group with id g-test with very verbose output:

 perl $0 -U http://localhost:8080 -g g-test -u admin -p admin -d testuser -vv

EOF

    return 1;
}

#}}}

#{{{sub run
sub run {
    my ( $group_member, $sling, $config ) = @_;
    if ( !defined $config ) {



( run in 0.483 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )