/// <summary> /// Возвратить значение параметра для указанного в аргументе пользователя, если его тип отличен от логического /// </summary> /// <param name="iListenerId">Идентификатор подписчика объекта обращения к данным</param> /// <param name="role">Идентификатор роли(группы), к которой принадлежит пользователь</param> /// <param name="user">Идентификатор пользователя</param> /// <param name="id">Идентификатор параметра профиля</param> /// <returns>Значение параметра для текущего пользователя</returns> public static string GetAllowed(int iListenerId, int role, int user, int id) { int err = -1; DbConnection dbConn = null; dbConn = DbSources.Sources().GetConnection(iListenerId, out err); return(err == 0 ? (string)HProfiles.GetAllowed(ref dbConn, role, user, id) : string.Empty); }
public static void SetAllowed(int iListenerId, int id, string val) { HProfiles.SetAllowed(iListenerId, id, val); }
public static string GetAllowed(int id) { return((string)HProfiles.GetAllowed(id)); }
/// <summary> /// Запуск проверки пользователя /// </summary> private void registrationEnv(object par) { int idListener = (int)par //idListener = ((int [])par)[0] //, indxDomainName = ((int[])par)[1] ; Logging.Logg().Debug(@"HUsers::HUsers () - ... registrationEnv () - вХод ... idListener = " + idListener + @"; m_bRegistration = " + m_bRegistration.ToString() + @"; m_StateRegistration = " + m_StateRegistration, Logging.INDEX_MESSAGE.NOT_SET); //Следующий приоритет DataBase if (m_bRegistration == false) { Logging.Logg().Debug(@"HUsers::HUsers () - ... registrationEnv () - m_StateRegistration [(int)INDEX_REGISTRATION.DOMAIN_NAME] = " + m_StateRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME].ToString(), Logging.INDEX_MESSAGE.NOT_SET); try { if (m_StateRegistration [(int)INDEX_REGISTRATION.DOMAIN_NAME] == STATE_REGISTRATION.UNKNOWN) { Logging.Logg().Debug(@"HUsers::HUsers () - ... registrationEnv () - m_StateRegistration [(int)INDEX_REGISTRATION.DOMAIN_NAME] = " + Environment.UserDomainName + @"\" + Environment.UserName, Logging.INDEX_MESSAGE.NOT_SET); //Определить из ENV //Проверка ИМЯ_ПОЛЬЗОВАТЕЛЯ m_DataRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME] = Environment.UserDomainName + @"\" + Environment.UserName; m_StateRegistration [(int)INDEX_REGISTRATION.DOMAIN_NAME] = STATE_REGISTRATION.ENV; } else { } } catch (Exception e) { Logging.Logg().Exception(e, @"HUsers::HUsers () - ... registrationEnv () ... Проверка ИМЯ_ПОЛЬЗОВАТЕЛЯ ... ", Logging.INDEX_MESSAGE.NOT_SET); throw e; } int err = -1; DataTable dataUsers; DbConnection connDB = DbSources.Sources().GetConnection((int)par, out err); if ((!(connDB == null)) && (err == 0)) { //Проверка ИМЯ_ПОЛЬЗОВАТЕЛЯ GetUsers(ref connDB, @"DOMAIN_NAME=" + @"'" + m_DataRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME] + @"'", string.Empty, out dataUsers, out err); Logging.Logg().Debug(@"HUsers::HUsers () - ... registrationEnv () - найдено пользователей = " + dataUsers.Rows.Count, Logging.INDEX_MESSAGE.NOT_SET); if ((err == 0) && (dataUsers.Rows.Count > 0)) {//Найдена хотя бы одна строка int i = -1; for (i = 0; i < dataUsers.Rows.Count; i++) { //Проверка IP-адрес //for (indxIP = 0; indxIP < listIP.Length; indxIP ++) { // if (listIP[indxIP].Equals(System.Net.IPAddress.Parse (dataUsers.Rows[i][@"IP"].ToString())) == true) { // //IP найден // break; // } // else // ; //} //Проверка ИМЯ_ПОЛЬЗОВАТЕЛЯ if (dataUsers.Rows[i][@"DOMAIN_NAME"].ToString().Trim().Equals((string)m_DataRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME], StringComparison.CurrentCultureIgnoreCase) == true) { break; } else { ; } } if (i < dataUsers.Rows.Count) { m_DataRegistration[(int)INDEX_REGISTRATION.ID] = Convert.ToInt32(dataUsers.Rows[i]["ID"]); m_StateRegistration[(int)INDEX_REGISTRATION.ID] = STATE_REGISTRATION.ENV; m_DataRegistration[(int)INDEX_REGISTRATION.ROLE] = Convert.ToInt32(dataUsers.Rows[i]["ID_ROLE"]); m_StateRegistration[(int)INDEX_REGISTRATION.ROLE] = STATE_REGISTRATION.ENV; m_DataRegistration[(int)INDEX_REGISTRATION.ID_TEC] = Convert.ToInt32(dataUsers.Rows[i]["ID_TEC"]); m_StateRegistration[(int)INDEX_REGISTRATION.ID_TEC] = STATE_REGISTRATION.ENV; } else { throw new Exception("Пользователь не найден в списке БД конфигурации"); } } else {//Не найдено ни одной строки if (connDB == null) { throw new HException(-4, "Нет соединения с БД конфигурации"); } else if (err == 0) { throw new HException(-3, "Пользователь не найден в списке БД конфигурации"); } else { throw new HException(-2, "Ошибка получения списка пользователей из БД конфигурации"); } } } else //Нет возможности для проверки { if (connDB == null) { throw new HException(-4, "Нет соединения с БД конфигурации"); } else if (!(err == 0)) { throw new HException(-3, "Не удалось установить связь с БД конфигурации"); } else { ; } } } else { Logging.Logg().Debug(@"HUsers::HUsers () - ... registrationEnv () - m_bRegistration = " + m_bRegistration.ToString(), Logging.INDEX_MESSAGE.NOT_SET); } try { m_profiles = createProfiles(idListener, (int)m_DataRegistration[(int)INDEX_REGISTRATION.ROLE], (int)m_DataRegistration[(int)INDEX_REGISTRATION.ID]); } catch (Exception e) { throw new HException(-6, e.Message); } }
/// <summary> /// Запуск проверки пользователя /// </summary> private void registrationEnv(object par) { int idListener = (int)par //idListener = ((int [])par)[0] , i = -1 ; //Следующий приоритет DataBase if (isRegistration == false) { Logging.Logg().Debug(string.Format(@"HUsers::HUsers () - ... registrationEnv () - s_StateRegistration [{0}] = {1}", INDEX_REGISTRATION.DOMAIN_NAME, s_StateRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME].ToString()), Logging.INDEX_MESSAGE.NOT_SET); try { if (s_StateRegistration[(int)INDEX_REGISTRATION.ID] == STATE_REGISTRATION.CMD) { // идентификатор указан в командной строке ; } else // если идентификатор не указан в командной строке if (s_StateRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME] == STATE_REGISTRATION.UNKNOWN) { //Определить из ENV //Проверка ИМЯ_ПОЛЬЗОВАТЕЛЯ switch (s_modeRegistration) { case MODE_REGISTRATION.MACHINE_DOMAINNAME: s_DataRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME] = MachineName; break; case MODE_REGISTRATION.USER_DOMAINNAME: default: s_DataRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME] = Environment.UserDomainName + @"\" + Environment.UserName; break; case MODE_REGISTRATION.MIXED: s_DataRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME] = MachineName + DELIMETER_DOMAINNAME + Environment.UserDomainName + @"\" + Environment.UserName; break; } s_StateRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME] = STATE_REGISTRATION.ENV; Logging.Logg().Debug(string.Format(@"HUsers::HUsers () - ... registrationEnv () - s_StateRegistration [{0}] = {1}", INDEX_REGISTRATION.DOMAIN_NAME, s_StateRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME]), Logging.INDEX_MESSAGE.NOT_SET); } else { } } catch (Exception e) { Logging.Logg().Exception(e, @"HUsers::HUsers () - ... registrationEnv () ... Проверка ИМЯ_ПОЛЬЗОВАТЕЛЯ ... ", Logging.INDEX_MESSAGE.NOT_SET); throw e; } int err = -1; DataTable dataUsers; DbConnection connDB = DbSources.Sources().GetConnection((int)par, out err); if ((!(connDB == null)) && (err == 0)) { //Проверка ИМЯ_ПОЛЬЗОВАТЕЛЯ GetUsers(ref connDB, whereQueryUsers, string.Empty, out dataUsers, out err); Logging.Logg().Debug(@"HUsers::HUsers () - ... registrationEnv () - найдено пользователей = " + dataUsers.Rows.Count, Logging.INDEX_MESSAGE.NOT_SET); if ((err == 0) && (dataUsers.Rows.Count > 0)) {//Найдена хотя бы одна строка i = 0; if ((s_StateRegistration[(int)INDEX_REGISTRATION.ID] == STATE_REGISTRATION.UNKNOWN) || (s_StateRegistration[(int)INDEX_REGISTRATION.DOMAIN_NAME] == STATE_REGISTRATION.ENV)) { for (i = 0; i < dataUsers.Rows.Count; i++) { //Проверка IP-адрес //for (indxIP = 0; indxIP < listIP.Length; indxIP ++) { // if (listIP[indxIP].Equals(System.Net.IPAddress.Parse (dataUsers.Rows[i][@"IP"].ToString())) == true) { // //IP найден // break; // } // else // ; //} //Проверка ИМЯ_ПОЛЬЗОВАТЕЛЯ if (equalsDomainName(dataUsers.Rows[i][@"DOMAIN_NAME"].ToString(), dataUsers.Rows[i][@"COMPUTER_NAME"].ToString()) == true) { break; } else { ; } } } else { setDataRegistration(INDEX_REGISTRATION.DOMAIN_NAME, getUserDomainNameEnvironment(dataUsers.Rows[i][@"DOMAIN_NAME"].ToString(), dataUsers.Rows[i][@"COMPUTER_NAME"].ToString()), STATE_REGISTRATION.CMD); } if (i < dataUsers.Rows.Count) { setDataRegistration(INDEX_REGISTRATION.ID, dataUsers.Rows[i]["ID"], STATE_REGISTRATION.ENV); setDataRegistration(INDEX_REGISTRATION.ROLE, dataUsers.Rows[i]["ID_ROLE"], STATE_REGISTRATION.ENV); setDataRegistration(INDEX_REGISTRATION.ID_TEC, dataUsers.Rows[i]["ID_TEC"], STATE_REGISTRATION.ENV); } else { throw new HException((int)ERROR_CODE.UDN_NOT_FOUND, messageUserIDNotFind); } } else {//Не найдено ни одной строки if (connDB == null) { throw new HException((int)ERROR_CODE.NOT_CONNECT_CONFIGDB, "Нет соединения с БД конфигурации"); } else if (err == 0) { throw new HException((int)ERROR_CODE.UDN_NOT_FOUND, messageUserIDNotFind); } else { throw new HException((int)ERROR_CODE.QUERY_FAILED, "Ошибка получения списка пользователей из БД конфигурации"); } } } else //Нет возможности для проверки { if (connDB == null) { throw new HException((int)ERROR_CODE.NOT_CONNECT_CONFIGDB, "Нет соединения с БД конфигурации"); } else //??? if (!(err == 0)) { throw new HException((int)ERROR_CODE.NOT_CONNECT_CONFIGDB, "Нет соединения с БД конфигурации"); } else { ; } } } else { Logging.Logg().Debug(string.Format(@"HUsers::HUsers () - ... registrationEnv () - isRegistration = {0}", isRegistration.ToString()), Logging.INDEX_MESSAGE.NOT_SET); } try { m_profiles = createProfiles(idListener, (int)s_DataRegistration[(int)INDEX_REGISTRATION.ROLE], (int)s_DataRegistration[(int)INDEX_REGISTRATION.ID]); } catch (Exception e) { throw new HException(-6, e.Message); } }
public static bool IsAllowed(int id) { return((bool)HProfiles.GetAllowed(id)); }
/// <summary> /// Возвратить значение параметра для указанного в аргументе пользователя, если его тип отличен от логического /// </summary> /// <param name="dbConn">Ссылка на объект соединения с БД конфигурации</param> /// <param name="role">Идентификатор роли(группы), к которой принадлежит пользователь</param> /// <param name="user">Идентификатор пользователя</param> /// <param name="id">Идентификатор параметра профиля</param> /// <returns>Значение параметра для текущего пользователя</returns> public static string GetAllowed(ref DbConnection dbConn, int role, int user, int id) { return((string)HProfiles.GetAllowed(ref dbConn, role, user, id)); }