Ejemplo n.º 1
0
        protected void btnApplyAddedCnls_Click(object sender, EventArgs e)
        {
            // добавление каналов
            if (hidAddedCnlNums.Value != "")
            {
                int[] addedCnls    = WebUtils.QueryParamToIntArray(hidAddedCnlNums.Value);
                int[] addedViewIDs = WebUtils.QueryParamToIntArray(hidAddedViewIDs.Value);
                ChartUtils.CheckArrays(addedCnls, addedViewIDs);
                HashSet <int> selCnlSet = ChartUtils.GetCnlSet(selCnls);

                for (int i = 0, cnt = addedCnls.Length; i < cnt; i++)
                {
                    int cnlNum = addedCnls[i];
                    if (!selCnlSet.Contains(cnlNum))
                    {
                        CnlViewPair pair = new CnlViewPair(cnlNum, addedViewIDs[i]);
                        pair.FillInfo(appData.DataAccess.GetCnlProps(cnlNum), userData.UserViews);
                        selCnls.Add(pair);
                    }
                }

                ViewState.Add("SelCnls", selCnls);
                ShowSelCnls();

                hidAddedCnlNums.Value = "";
                hidAddedViewIDs.Value = "";
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Проверить заданные права на возможность просмотра входных каналов, входящих в указанные представления
        /// </summary>
        /// <remarks>Если проверка не пройдена, вызывается исключение</remarks>
        public void CheckRights(UserRights userRights, int[] cnlNums, int[] viewIDs)
        {
            if (userRights == null)
            {
                throw new ArgumentNullException("userRights");
            }

            ChartUtils.CheckArrays(cnlNums, viewIDs);
            userData        = null;
            this.userRights = userRights;

            if (!userRights.ViewAllRight)
            {
                BaseView singleView;
                CheckRights(cnlNums, viewIDs, out singleView);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Проверить права текущего пользователя на просмотр входных каналов, входящих в указанные представления,
        /// а также получить представление, если оно единственное
        /// </summary>
        /// <remarks>Если проверка не пройдена, вызывается исключение</remarks>
        public void CheckRights(UserData userData, int[] cnlNums, int[] viewIDs, out BaseView singleView)
        {
            if (userData == null)
            {
                throw new ArgumentNullException("userData");
            }
            if (!userData.LoggedOn)
            {
                throw new ScadaException(WebPhrases.NotLoggedOn);
            }
            ChartUtils.CheckArrays(cnlNums, viewIDs);

            this.userData = userData;
            userRights    = userData.UserRights;

            if (userRights.ViewAllRight)
            {
                singleView = ElementsEqual(viewIDs) ? GetView(viewIDs[0]) : null;
            }
            else
            {
                CheckRights(cnlNums, viewIDs, out singleView);
            }
        }