12 #ifndef USER_SECURITY_H
13 #define USER_SECURITY_H
16 #include "sr_instrument.h"
18 #include "..\..\..\..\functionblocks\controls\sr_instrument\src\sr_instrument.h"
31 #define MAX_USERID_LENGTH 20
32 #define MAX_PASSWORD_LENGTH 20
33 #define MAX_DOMAIN_NAME_LENGTH 60
36 #define SECURITY_DATA_OFFSET 4
40 #define APPLY_SECURITY_MAGIC_NUMBER_MSB 0xC0
41 #define APPLY_SECURITY_MAGIC_NUMBER_LSB 0x01
42 #define APPLY_SECURITY_MAGIC_NUMBER_OFFSET 0xFFFF
53 SECURITY_ACCOUNT_DISABLED,
54 SECURITY_PASSWORD_EXPIRED,
55 SECURITY_USER_TIMED_OUT,
56 SECURITY_LOGGED_OUT_SECURITY_CHANGED
74 MAX_WEB_RESTRICTED_USERS = ENGINEER_USER,
78 #define ALL_SECURITY_USER LOGGED_OUT_USER
85 CHANGE_ALARM_SETPOINTS,
91 EDIT_ACCESS_PERMISSIONS,
95 EDIT_OUTPUT_CHANNEL_DEFAULT,
96 FORCE_PASSWORD_CHANGE,
102 #define FIRST_EAP_PERMISSION EDIT_OUTPUT_CHANNEL_DEFAULT
112 REQUIRE_AUTHORIZATION,
126 string_20 remotePassword;
127 string_60 domainName;
128 double passwordChanged;
129 int16 passwordExpires;
130 uint8 failedPasswordCounter;
131 bool remoteConnectionEnabled;
132 bool permission[MAX_PERMISSIONS];
141 uint32 secManMagicNumber;
143 uint16 management[MAX_MANAGEMENT];
149 void initialise_security();
150 void apply_new_security_from_file();
151 void apply_new_security_from_nvram(uint16 z_user);
152 void debug_default_security();
153 bool instrument_in_lockdown();
155 uint16 getUserIndex(
char * z_userId);
156 char *getUserName(uint16 z_user);
157 bool getUserRemoteConnectionEnabled(uint16 z_user);
158 uint8 getUserFailedLogins(uint16 z_user);
159 int16 getPasswordExpires(uint16 z_user);
160 uint8 checkLogin(uint16 z_user,
char *z_password,
bool z_remote);
161 void checkPassword(
int z_connectionNumber,
int z_userRole, sr_instrument_data_t *z_inst_data);
162 void checkEPassword(
int z_connectionNumber,
int z_userRole, sr_instrument_data_t *z_inst_data);
163 bool userGetPermission(uint16 z_user, uint8 z_permission);
164 uint16 userGetManagement(uint8 z_management);
170 void setPasswordExpires(uint16 z_user, int16 z_expires);
171 void setUserFailedLogins(uint16 z_user, uint8 z_failedlogins);
172 uint16 connectionSetUserAndLoggedInStatus(uint8 z_connectionNumber, uint8 z_userRole, uint16 z_user,
bool LoggedInStatus);
173 void connectionSetUserLoggedInAndLoggedInStatus(uint8 z_connectionNumber, uint8 z_userRole,
bool LoggedInStatus);
174 bool is_this_security_same_as_default_security(
user_security_t *pUserSecurity);
175 bool is_user_security_same_as_default_security(
void);
176 bool is_IDM_security_same_as_default_security(
void);
178 void copy_IDM_security_to_user_security(
void);
179 void copy_IDM_copy_of_nvol_security_buffer_to_main_buffer(
void);
180 void write_user_security_to_nvol();
181 bool does_IDM_security_include_this_userID(
char* z_userID);
182 bool does_IDM_security_include_currently_logged_userID(
void);
183 bool does_IDM_security_with_this_userID_have_same_password(
char* z_userID,
char* z_password);
184 bool does_IDM_security_does_currently_logged_userID_have_same_password(
void);
186 extern bool g_User_Security_Use_Loaded_From_Clone_File_User_Security;
192 extern uint16 connectionGetUser(uint8 z_connectionNumber, uint8 z_userRole);
193 extern uint16 connectionSetUser(uint8 z_connectionNumber, uint8 z_userRole, uint16 z_user);
194 extern uint16 connectionSetUserForAllConnections( uint8 z_userRole, uint16 z_user);
195 extern uint16 connectionGetLoggedInUser(uint8 z_connectionNumber, uint8 z_userRole);
196 extern void connectionSetUserLoggedIn(uint8 z_connectionNumber, uint8 z_userRole);
197 extern uint8 connectionGetSecurityStatus(uint8 z_connectionNumber, uint8 z_userRole);
198 extern void connectionSetSecurityStatus(uint8 z_connectionNumber, uint8 z_userRole, uint8 z_status);
199 extern void connectionSetSecurityStatusForAllConnections( uint8 z_userRole, uint8 z_status);
200 extern void connectionSetLoggedInTime(uint8 z_connectionNumber,
double z_time);
201 extern bool connectionGetWriting(uint8 z_connectionNumber);
202 extern void connectionSetWriting(uint8 z_connectionNumber,
bool z_writing);
204 extern STATUS takeLoginSemaphore(uint8 z_connectionNumber,
int z_wait);
205 extern void giveLoginSemaphore(uint8 z_connectionNumber);
212 #define SECURITY_CONFIG_FILE_BASE "memmap.tmp"
213 extern char g_VersaDAC_Security_File[];
216 extern char g_nvol_security_buffer[];
217 extern char g_nvol_security_buffer_for_IDM_Clone_File_Loading[];
218 extern bool g_nvol_security_buffer_Use_IDM_Clone_File_Buffer;
220 #define get_security_start_addr() (g_nvol_security_buffer_Use_IDM_Clone_File_Buffer == true ? g_nvol_security_buffer_for_IDM_Clone_File_Loading : g_nvol_security_buffer)
222 #define get_security_for_IDM_Clone_File_Loading_start_addr() g_nvol_security_buffer_for_IDM_Clone_File_Loading
225 extern bool g_IDM_SecurityFileHasBeenReEncryptedDoNotWriteAnyMoreData;
228 extern uint16 OPCConvertUserIDToConnectionNumberForReading(uint8 z_userid);
229 extern uint16 OPCConvertUserIDToConnectionNumberForWriting(uint8 z_userid);
233 void iToolsEncryptToString(
const char *z_data,
int z_key,
char** z_ppszOut );
Definition: usersecurity.h:135
Definition: usersecurity.h:117