NAME
WebService::Mattermost::V4::API::Resource::User - Wrapped API methods for the users API endpoints.
VERSION
version 0.30
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_user
andsystem_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