Example #1
0
        /// <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);
        }
Example #2
0
 public static void SetAllowed(int iListenerId, int id, string val)
 {
     HProfiles.SetAllowed(iListenerId, id, val);
 }
Example #3
0
 public static string GetAllowed(int id)
 {
     return((string)HProfiles.GetAllowed(id));
 }
Example #4
0
        /// <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);
            }
        }
Example #5
0
        /// <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);
            }
        }
Example #6
0
 public static bool IsAllowed(int id)
 {
     return((bool)HProfiles.GetAllowed(id));
 }
Example #7
0
 /// <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));
 }