Kernel::System::CustomerGroup - customer group lib
All customer group functions. E. g. to add groups or to get a member list of a group.
Don't use the constructor directly, use the ObjectManager instead:
my $CustomerGroupObject = $Kernel::OM->Get('Kernel::System::CustomerGroup');
to add a member to a group
Permission: ro,move_into,priority,create,rw my $Success = $CustomerGroupObject->GroupMemberAdd( GID => 12, UID => 6, Permission => { ro => 1, move_into => 1, create => 1, owner => 1, priority => 0, rw => 0, }, UserID => 123, );
Get users of the given group.
my %Users = $CustomerGroupObject->GroupMemberList( GroupID => '123', Type => 'move_into', # ro|move_into|priority|create|rw Result => 'HASH', # return hash of user id => user name entries RawPermissions => 0, # 0 (return inherited permissions from CustomerCompany), default # 1 (return only direct permissions) );
or
my @UserIDs = $CustomerGroupObject->GroupMemberList( GroupID => '123', Type => 'move_into', # ro|move_into|priority|create|rw Result => 'ID', # return array of user ids RawPermissions => 0, # 0 (return inherited permissions from CustomerCompany), default # 1 (return only direct permissions) );
or
my @UserNames = $CustomerGroupObject->GroupMemberList( GroupID => '123', Type => 'move_into', # ro|move_into|priority|create|rw Result => 'Name', # return array of user names RawPermissions => 0, # 0 (return inherited permissions from CustomerCompany), default # 1 (return only direct permissions) );
Get groups of given user.
my %Groups = $CustomerGroupObject->GroupMemberList( UserID => '123', Type => 'move_into', # ro|move_into|priority|create|rw Result => 'HASH', # return hash of group id => group name entries RawPermissions => 0, # 0 (return inherited permissions from CustomerCompany), default # 1 (return only direct permissions) );
or
my @GroupIDs = $CustomerGroupObject->GroupMemberList( UserID => '123', Type => 'move_into', # ro|move_into|priority|create|rw Result => 'ID', # return array of group ids RawPermissions => 0, # 0 (return inherited permissions from CustomerCompany), default # 1 (return only direct permissions) );
or
my @GroupNames = $CustomerGroupObject->GroupMemberList( UserID => '123', Type => 'move_into', # ro|move_into|priority|create|rw Result => 'Name', # return array of group names RawPermissions => 0, # 0 (return inherited permissions from CustomerCompany), default # 1 (return only direct permissions) );
to add a customer to a group
Permission types: e.g. ro,move_into,priority,create,rw Permission context: e.g. Ticket::CustomerID::Same, Ticket::CustomerID::Other my $Success = $CustomerGroupObject->GroupCustomerAdd( GID => 12, CustomerID => 'customer-company', Permission => { 'Ticket::CustomerID::Same' => { ro => 1, move_into => 1, create => 1, owner => 1, priority => 0, rw => 0, }, 'Ticket::CustomerID::Other' => { ro => 1, move_into => 1, create => 1, owner => 1, priority => 0, rw => 0, }, ... }, UserID => 123, );
Get customers of the given group.
my %Customers = $CustomerGroupObject->GroupCustomerList( GroupID => '123', Type => 'ro', # ro|move_into|priority|create|owner|rw Context => 'Ticket::CustomerID::Same', # permissions to same company tickets, default context Result => 'HASH', # return hash of customer id => group name entries );
or
my @CustomerIDs = $CustomerGroupObject->GroupCustomerList( GroupID => '123', Type => 'ro', # ro|move_into|priority|create|owner|rw Context => 'Ticket::CustomerID::Same', # permissions to same company tickets, default context Result => 'ID', # return array of customer ids );
or
my @CustomerNames = $CustomerGroupObject->GroupCustomerList( GroupID => '123', Type => 'ro', # ro|move_into|priority|create|owner|rw Context => 'Ticket::CustomerID::Same', # permissions to same company tickets, default context Result => 'Name', # return array of customer ids );
Get groups of given customer.
my %Groups = $CustomerGroupObject->GroupCustomerList( CustomerID => '123', Type => 'ro', # ro|move_into|priority|create|owner|rw Context => 'Ticket::CustomerID::Same', # permissions to same company tickets, default context Result => 'HASH', # return hash of group id => group name entries );
or
my @GroupIDs = $CustomerGroupObject->GroupCustomerList( CustomerID => '123', Type => 'ro', # ro|move_into|priority|create|owner|rw Context => 'Ticket::CustomerID::Same', # permissions to same company tickets, default context Result => 'ID', # return array of group ids );
or
my @GroupNames = $CustomerGroupObject->GroupCustomerList( CustomerID => '123', Type => 'ro', # ro|move_into|priority|create|owner|rw Context => 'Ticket::CustomerID::Same', # permissions to same company tickets, default context Result => 'Name', # return array of group names );
Helper function to get currently configured name of a specific group access context
my $ContextName = $CustomerGroupObject->GroupContextNameGet( SysConfigName => '100-CustomerID-other', # optional, defaults to '001-CustomerID-same' );
Helper function to get the names of all configured group access contexts
my @ContextNames = $CustomerGroupObject->GroupContextNameList();
Get all customer companies of the given customer user, including those associated via context based permissions.
my %Customers = $CustomerGroupObject->GroupContextCustomers( CustomerUserID => '123', );
Returns hash with Customer IDs as key and Customer Company Name as value:
%Customers = { '001' => 'Customer Company 1', '002' => 'Customer Company 2', };
get id or name for group
my $Group = $CustomerGroupObject->GroupLookup(GroupID => $GroupID); my $GroupID = $CustomerGroupObject->GroupLookup(Group => $Group);
Check if a customer user has a certain permission for a certain group.
my $HasPermission = $CustomerGroupObject->PermissionCheck( UserID => $UserID, GroupName => $GroupName, Type => 'move_into', );
This software is part of the OTRS project (https://otrs.org/).
This software comes with ABSOLUTELY NO WARRANTY. For details, see the enclosed file COPYING for license information (GPL). If you did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.