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 = ""; } }
/// <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); } }
/// <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); } }