DtkSystemSettings  1.0.3
dtk library for systemsettings.
daccountsmanager.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 Uniontech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#pragma once
6
7#include "daccountstypes.h"
8#include <QSharedPointer>
9#include <QStringList>
10#include <DExpected>
11
12DACCOUNTS_BEGIN_NAMESPACE
13class DAccountsUser;
14DACCOUNTS_END_NAMESPACE
15
16using AccountsUserPtr = QSharedPointer<DTK_ACCOUNTS_NAMESPACE::DAccountsUser>;
17using AccountsValidMsg = DTK_ACCOUNTS_NAMESPACE::ValidMsg;
18using DAccountTypes = DTK_ACCOUNTS_NAMESPACE::AccountTypes;
19
20DACCOUNTS_BEGIN_NAMESPACE
21using DCORE_NAMESPACE::DExpected;
22
23class DAccountsManagerPrivate;
24
25class DAccountsManager : public QObject
26{
27 Q_OBJECT
28
29public:
30 explicit DAccountsManager(QObject *parent = nullptr);
31 virtual ~DAccountsManager();
32
33public slots:
34 DExpected<QList<quint64>> userList() const; // TODO:创建或删除userlist无法及时刷新,调用sleep(1)正常
35 DExpected<AccountsUserPtr> createUser(const QString &name, const QString &fullName, const DAccountTypes &type);
36 DExpected<void> deleteUser(const QString &name, const bool rmFiles);
37 DExpected<AccountsUserPtr> findUserByName(const QString &name);
38 DExpected<AccountsUserPtr> findUserById(const qint64 uid);
39 DExpected<QStringList> groups();
40 DExpected<QStringList> presetGroups(const DAccountTypes &type);
41 DExpected<AccountsValidMsg> isPasswordValid(const QString &password);
42 DExpected<AccountsValidMsg> isUsernameValid(const QString &name);
43
44signals:
45 void UserAdded(const quint64 uid);
46 void UserDeleted(const quint64 uid);
47
48private:
49 QScopedPointer<DAccountsManagerPrivate> d_ptr;
50 Q_DECLARE_PRIVATE(DAccountsManager)
51};
52
53DACCOUNTS_END_NAMESPACE
管理用户账户信息
Definition: daccountsmanager.h:26
DExpected< AccountsUserPtr > findUserByName(const QString &name)
使用用户名来寻找用户
DExpected< QStringList > groups()
列出系统中的所有用户组
DExpected< AccountsUserPtr > createUser(const QString &name, const QString &fullName, const DAccountTypes &type)
创建一个新用户
void UserAdded(const quint64 uid)
当添加用户时发送信号
DExpected< AccountsUserPtr > findUserById(const qint64 uid)
使用uid来寻找用户
DExpected< void > deleteUser(const QString &name, const bool rmFiles)
删除一个用户
DExpected< QList< quint64 > > userList() const
列出之前在本地系统中登录过的用户
DExpected< AccountsValidMsg > isPasswordValid(const QString &password)
判断密码是否合法
DExpected< AccountsValidMsg > isUsernameValid(const QString &name)
判断用户名是否合法
void UserDeleted(const quint64 uid)
当用户被删除时发送信号
DAccountsManager(QObject *parent=nullptr)
构造manager对象,并且进行信号的连接
DExpected< QStringList > presetGroups(const DAccountTypes &type)
根据用户类型获取用户的预定义用户组
在daccountstypes.h中定义了一些dtkaccounts模块中所用到的自定义类型。