Loading...
1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*
3 * Copyright (C) 2018 Samsung Electronics Co., Ltd.
4 */
5
6#ifndef __USER_CONFIG_MANAGEMENT_H__
7#define __USER_CONFIG_MANAGEMENT_H__
8
9#include "../glob.h"
10
11struct ksmbd_user {
12 unsigned short flags;
13
14 unsigned int uid;
15 unsigned int gid;
16
17 char *name;
18
19 size_t passkey_sz;
20 char *passkey;
21};
22
23static inline bool user_guest(struct ksmbd_user *user)
24{
25 return user->flags & KSMBD_USER_FLAG_GUEST_ACCOUNT;
26}
27
28static inline void set_user_flag(struct ksmbd_user *user, int flag)
29{
30 user->flags |= flag;
31}
32
33static inline int test_user_flag(struct ksmbd_user *user, int flag)
34{
35 return user->flags & flag;
36}
37
38static inline void set_user_guest(struct ksmbd_user *user)
39{
40}
41
42static inline char *user_passkey(struct ksmbd_user *user)
43{
44 return user->passkey;
45}
46
47static inline char *user_name(struct ksmbd_user *user)
48{
49 return user->name;
50}
51
52static inline unsigned int user_uid(struct ksmbd_user *user)
53{
54 return user->uid;
55}
56
57static inline unsigned int user_gid(struct ksmbd_user *user)
58{
59 return user->gid;
60}
61
62struct ksmbd_user *ksmbd_login_user(const char *account);
63struct ksmbd_user *ksmbd_alloc_user(struct ksmbd_login_response *resp);
64void ksmbd_free_user(struct ksmbd_user *user);
65int ksmbd_anonymous_user(struct ksmbd_user *user);
66bool ksmbd_compare_user(struct ksmbd_user *u1, struct ksmbd_user *u2);
67#endif /* __USER_CONFIG_MANAGEMENT_H__ */