aboutsummaryrefslogtreecommitdiff
path: root/lib/csapi/banning.h
blob: 6bf782e7723982e38d22195dfe005fe3f0644f9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/******************************************************************************
 * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
 */

#pragma once

#include "jobs/basejob.h"

namespace Quotient {

// Operations

/*! \brief Ban a user in the room.
 *
 * Ban a user in the room. If the user is currently in the room, also kick them.
 *
 * When a user is banned from a room, they may not join it or be invited to it
 * until they are unbanned.
 *
 * The caller must have the required power level in order to perform this
 * operation.
 */
class BanJob : public BaseJob {
public:
    /*! \brief Ban a user in the room.
     *
     * \param roomId
     *   The room identifier (not alias) from which the user should be banned.
     * \param userId
     *   The fully qualified user ID of the user being banned.
     * \param reason
     *   The reason the user has been banned. This will be supplied as the
     * ``reason`` on the target's updated `m.room.member`_ event.
     */
    explicit BanJob(const QString& roomId, const QString& userId,
                    const QString& reason = {});
};

/*! \brief Unban a user from the room.
 *
 * Unban a user from the room. This allows them to be invited to the room,
 * and join if they would otherwise be allowed to join according to its join
 * rules.
 *
 * The caller must have the required power level in order to perform this
 * operation.
 */
class UnbanJob : public BaseJob {
public:
    /*! \brief Unban a user from the room.
     *
     * \param roomId
     *   The room identifier (not alias) from which the user should be unbanned.
     * \param userId
     *   The fully qualified user ID of the user being unbanned.
     */
    explicit UnbanJob(const QString& roomId, const QString& userId);
};

} // namespace Quotient