0001
0002
0003
0004
0005
0006 #ifndef __USER_CONFIG_MANAGEMENT_H__
0007 #define __USER_CONFIG_MANAGEMENT_H__
0008
0009 #include "../glob.h"
0010
0011 struct ksmbd_user {
0012 unsigned short flags;
0013
0014 unsigned int uid;
0015 unsigned int gid;
0016
0017 char *name;
0018
0019 size_t passkey_sz;
0020 char *passkey;
0021 unsigned int failed_login_count;
0022 };
0023
0024 static inline bool user_guest(struct ksmbd_user *user)
0025 {
0026 return user->flags & KSMBD_USER_FLAG_GUEST_ACCOUNT;
0027 }
0028
0029 static inline void set_user_flag(struct ksmbd_user *user, int flag)
0030 {
0031 user->flags |= flag;
0032 }
0033
0034 static inline int test_user_flag(struct ksmbd_user *user, int flag)
0035 {
0036 return user->flags & flag;
0037 }
0038
0039 static inline void set_user_guest(struct ksmbd_user *user)
0040 {
0041 }
0042
0043 static inline char *user_passkey(struct ksmbd_user *user)
0044 {
0045 return user->passkey;
0046 }
0047
0048 static inline char *user_name(struct ksmbd_user *user)
0049 {
0050 return user->name;
0051 }
0052
0053 static inline unsigned int user_uid(struct ksmbd_user *user)
0054 {
0055 return user->uid;
0056 }
0057
0058 static inline unsigned int user_gid(struct ksmbd_user *user)
0059 {
0060 return user->gid;
0061 }
0062
0063 struct ksmbd_user *ksmbd_login_user(const char *account);
0064 struct ksmbd_user *ksmbd_alloc_user(struct ksmbd_login_response *resp);
0065 void ksmbd_free_user(struct ksmbd_user *user);
0066 int ksmbd_anonymous_user(struct ksmbd_user *user);
0067 bool ksmbd_compare_user(struct ksmbd_user *u1, struct ksmbd_user *u2);
0068 #endif