Kernel::System::ACL::DB::ACL
ACL DB ACL backend
create a ACL object. Do not use it directly, instead use:
my $ACLObject = $Kernel::OM->Get('Kernel::System::ACL::DB::ACL');
add new ACL
returns the id of the created ACL if success or undef otherwise
my $ID = $ACL->ACLAdd( Name => 'NameOfACL' # mandatory Comment => 'Comment', # optional Description => 'Description', # optional StopAfterMatch => 1, # optional ConfigMatch => $ConfigMatchHashRef, # optional ConfigChange => $ConfigChangeHashRef, # optional ValidID => 1, # mandatory UserID => 123, # mandatory );
Returns:
$ID = 567;
delete an ACL
returns 1 if success or undef otherwise
my $Success = $ACLObject->ACLDelete( ID => 123, UserID => 123, );
get ACL attributes
my $ACL = $ACLObject->ACLGet( ID => 123, # ID or name is needed Name => 'ACL1', UserID => 123, # mandatory );
Returns:
$ACL = { ID => 123, Name => 'some name', Comment => 'Comment', Description => 'Description', StopAfterMatch => 1, ConfigMatch => $ConfigMatchHashRef, ConfigChange => $ConfigChangeHashRef, ValidID => 1, CreateTime => '2012-07-04 15:08:00', ChangeTime => '2012-07-04 15:08:00', CreateBy => 'user_login', ChangeBy => 'user_login', };
update ACL attributes
returns 1 if success or undef otherwise
my $Success = $ACLObject->ACLUpdate( ID => 123, # mandatory Name => 'NameOfACL', # mandatory Comment => 'Comment', # optional Description => 'Description', # optional StopAfterMatch => 1, # optional ValidID => 'ValidID', # mandatory ConfigMatch => $ConfigMatchHashRef, # optional ConfigChange => $ConfigChangeHashRef, # optional UserID => 123, # mandatory );
get an ACL list
my $List = $ACLObject->ACLList( ValidIDs => ['1','2'], # optional, to filter ACLs that match listed valid IDs UserID => 1, ); Returns: $List = { 1 => 'NameOfACL', }
get an ACL list with all ACL details
my $List = $ACLObject->ACLListGet( UserID => 1, ValidIDs => ['1','2'], # optional, to filter ACLs that match listed valid IDs );
Returns:
$List = [ { ID => 123, Name => 'some name', Comment => 'Comment', Description => 'Description', ValidID => 1, ConfigMatch => $ConfigMatchHashRef, ConfigChange => $ConfigChangeHashRef, CreateTime => '2012-07-04 15:08:00', ChangeTime => '2012-07-04 15:08:00', }, { ID => 123, Name => 'some name', Comment => 'Comment', Description => 'Description', ValidID => 1, ConfigMatch => $ConfigMatchHashRef, ConfigChange => $ConfigChangeHashRef, CreateTime => '2012-07-04 15:08:00', ChangeTime => '2012-07-04 15:08:00', }, ];
Check if there are ACLs that are not yet deployed
my $SyncCount = $ACLObject->ACLsNeedSync(); Returns: $SyncCount = 0 || Number of ALCs that need to be synced
Reset synchronization information for ACLs.
gets a complete ACL information dump from the DB
my $ACLDump = $ACLObject->ACLDump( ResultType => 'SCALAR' # 'SCALAR' || 'HASH' || 'FILE' Location => '/opt/otrs/var/myfile.txt' # mandatory for ResultType = 'FILE' UserID => 1, );
Returns: $ACLDump = '/opt/otrs/var/myfile.txt'; # or undef if can't write the file
import an ACL YAML file/content
my $ACLImport = $ACLObject->ACLImport( Content => $YAMLContent, # mandatory, YAML format OverwriteExistingEntities => 0, # 0 || 1 UserID => 1, # mandatory );
Returns:
$ACLImport = { Success => 1, # 1 if success or undef if operation could not # be performed Message => 'The Message to show.', # error message AddedACLs => 'ACL1, ACL2', # list of ACLs correctly added UpdatedACLs => 'ACL3, ACL4', # list of ACLs correctly updated ACLErrors => 'ACL5', # list of ACLs that could not be added or updated };
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.