NAME
WebService::Mattermost::V4::API::Resource::User - Wrapped API methods for the users API endpoints.
VERSION
version 0.31
DESCRIPTION
API methods relating to a single user by ID.
USAGE
use WebService::Mattermost;
my $mm = WebService::Mattermost->new({
authenticate => 1,
username => 'me@somewhere.com',
password => 'hunter2',
base_url => 'https://my.mattermost.server.com/api/v4/',
});
my $resource = $mm->api->user;
Optionally, you can set a global user ID for the resource and not pass the ID to every method:
$resource->id('USER-ID-HERE');
METHODS
All of the below methods can either be called as documented under each item, or from a user result object:
my $user = $resource->get('USER-ID-HERE')->item;
# Calls method "teams"
my $response = $user->call('teams');
# Calls method "update"
$response = $user->call('update', {
# parameters
});
get()-
Get a user by their ID.
my $response = $resource->get('USER-ID-HERE'); update()-
Update a user by their ID.
my $response = $resource->update('USER-ID-HERE', { # Optional arguments email => '...', username => '...', first_name => '...', last_name => '...', nickname => '...', locale => '...', position => '...', props => { # ... }, notify_props => { email => \1, push => \1, desktop => \1, desktop_sound => \1, mention_keys => \1, channel => \1, first_name => \1, }, }); teams()deactivate()-
Set a user as inactive by ID.
$response->deactivate('USER-ID-HERE'); patch()-
my $response = $resource->patch('USER-ID-HERE', { # Optional parameters: email => '...', username => '...', first_name => '...', last_name => '...', nickname => '...', locale => '...', position => '...', props => { # ... }, notify_props => { email => \1, push => \1, desktop => \1, desktop_sound => \1, mention_keys => \1, channel => \1, first_name => \1, }, }); update_roles()-
Valid roles are
system_userandsystem_admin.my $response = $resource->update_roles('USER-ID-HERE', [ 'ROLE-NAME-HERE', 'ANOTHER-ROLE-HERE', ]); generate_mfa_secret()-
Returns a base64 encoded QR code image.
my $response = $resource->generate_mfa_secret('USER-ID-HERE'); update_mfa()-
Set whether a user requires multi-factor auth. If the user currently has MFA active, a code from the MFA client is required.
my $response = $resource->update_mfa('ID-HERE', { activate => \1, # or \0 for false code => 1234, # required if MFA is already active }); get_profile_image()-
Get a user's profile image. Warning: returns binary content.
my $response = $resource->get_profile_image('ID-HERE'); # $response->raw_content contains the image as binary set_profile_image()-
Set a user's profile image.
my $response = $resource->set_profile_image('ID-HERE', '/path/to/file.jpg'); update_active_status()-
Set a user as active or inactive.
$resource->update_active_status('ID-HERE', { active => \1, # \1 for true, \0 for false }); update_password()-
my $response = $resource->update_password('ID-HERE', { old_password => '...', new_password => '...', }); update_authentication_method()-
Update a user's authentication method
my $response = $resource->update_authentication_method('USER-ID-HERE', { # Optional parameters: auth_data => '...', auth_service => '...', password => '...', }); get_status()-
my $response = $resource->get_status('USER-ID-HERE'); set_status()-
my $response = $resource->set_status('USER-ID-HERE', 'STATUS-HERE');Available statuses are "online", "away", "offline" and "dnd".
get_sessions()-
my $response = $resource->get_sessions('USER-ID-HERE'); revoke_session()-
my $response = $resource->revoke_session('USER-ID-HERE', 'SESSION-ID-HERE'); revoke_all_sessions()-
Revoke all active sessions for a user
my $response = $resource->revoke_all_sessions('USER-ID-HERE'); get_preferences()-
my $response = $resource->get_preferences('USER-ID-HERE'); set_preferences()-
my $response = $resource->set_preferences('USER-ID-HERE', [ { user_id => 'USER-ID-HERE', category => '...', name => '...', value => '...' }, { user_id => 'USER-ID-HERE', category => '...', name => '...', value => '...' }, { user_id => 'USER-ID-HERE', category => '...', name => '...', value => '...' }, ]); delete_preferences()-
my $response = $resource->delete_preferences('USER-ID-HERE', [ { user_id => 'USER-ID-HERE', category => '...', name => '...', value => '...' }, { user_id => 'USER-ID-HERE', category => '...', name => '...', value => '...' }, { user_id => 'USER-ID-HERE', category => '...', name => '...', value => '...' }, ]); list_preferences_by_category()-
List a user's preferences by category
my $response = $resource->list_preferences_by_category('USER-ID-HERE', 'CATEGORY-HERE'); get_preference_by_category_and_name()-
Get a specific user preference
my $response = $resource->get_preference_by_category_and_name( 'USER-ID-HERE', 'CATEGORY-HERE', 'NAME-HERE', ); get_flagged_posts()-
Retrieve a list of posts flagged by the user with the given ID.
my $response = $resource->get_flagged_posts('USER-ID-HERE', { # Optional parameters team_id => '...', channel_id => '...', page => 0, per_page => 60, }); remove_reaction()-
Remove a reaction from a user's post
my $response = $resource->remove_reaction( 'USER-ID-HERE', 'POST-ID-HERE', 'EMOJI-NAME-HERE', ); -
Alias for
get_authorised_apps(). -
my $response = $resource->get_authorised_apps('USER-ID-HERE', { # Optional parameters: page => 0, per_page => 60, });
AUTHOR
Mike Jones <mike@netsplit.org.uk>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2023 by Mike Jones.
This is free software, licensed under:
The MIT (X11) License