void refreshTabs() { tabbedView.Visible = true; CKeyNLR selected = null; _currentUser = null; if (userList.GetSelectedCount() > 0) { selected = userList.GetSelectedKeys().GetFirst(); if (WAFContext.Session.NodeExists(selected.NodeId, true, true)) { _currentUser = WAFContext.Session.GetContent<SystemUser>(selected); } else { selected = null; cntFrm.Content = null; userList.ClearFlaggedValues(); } } if (selected == null) { tabbedView.Visible = false; return; } // Details if (cntFrm.Content == null || cntFrm.Content.RootContent.Key.lKey != _currentUser.Key.lKey) { cntFrm.Content = _currentUser; } // Effective memberships AqlQuery qm = WAFContext.Session.CreateQuery(); qm.From<UserGroup>(); qm.Select<UserGroup>(); qm.Select(AqlUserGroup.NodeId); UniqueList<int> allGroupMembersShips; try { allGroupMembersShips = _currentUser.GetAllMembershipsById(); } catch (CircularReferenceException error) { WAFContext.Session.Notify(error); allGroupMembersShips = new UniqueList<int>(-1); } qm.Where(Aql.In(AqlUserGroup.NodeId, allGroupMembersShips)); listMemberships.Query = qm; // Effective permissions AqlQuery qp = WAFContext.Session.CreateQuery(); qp.From<ContentBase>(); qp.Select<ContentBase>(); if (!_currentUser.IsAdmin) { AqlExpressionBuilder ex = new AqlExpressionBuilder(); UniqueList<int> ms = new UniqueList<int>(allGroupMembersShips); ms.Add((int)SystemUserGroupType.AllUsers); ms.Add((int)SystemUserGroupType.Anonymous); AqlPropertyInteger prop = null; switch (rblPermissions.SelectedValue) { case "Read": prop = AqlContent.ReadGroupId; break; case "Edit": prop = AqlContent.EditGroupId; break; case "Publish": prop = AqlContent.PublishGroupId; break; default: break; } qp.Where(Aql.In(prop, ms)); } listPermissions.Query = qp; // Relevant content AqlQuery qr = WAFContext.Session.CreateQuery(); qr.From<ContentBase>(); qr.Select<ContentBase>(); qr.Select(AqlContent.NodeId); qr.IncludeUnpublished = true; qr.Where( (AqlContent.AuthorId == _currentUser.NodeId) | (AqlContent.CreatedById == _currentUser.NodeId) | (AqlContent.PublicationApprovedById == _currentUser.NodeId) | (AqlContent.ChangedById == _currentUser.NodeId )); listRelevant.Query = qr; }
void setQuery() { AqlExpressionBuilder expStatus = new AqlExpressionBuilder(); expStatus.Or(AqlUrlStatus.NodeId == -1); foreach (ListItem i in chkLinkStatus.Items) { if (i.Selected) expStatus.Or(AqlUrlStatus.Status == int.Parse(i.Value)); } AqlExpressionBuilder expType = new AqlExpressionBuilder(); expType.Or(AqlUrlStatus.NodeId == -1); foreach (ListItem i in chkLinkType.Items) { if (i.Selected) expType.Or(AqlUrlStatus.UrlType == int.Parse(i.Value)); } AqlExpressionBoolean exp = null; if (!expStatus.IsEmpty) exp = expStatus; if (!expType.IsEmpty) { if (expStatus.IsEmpty) { exp = expType; } else { exp = new AqlExpressionAnd(expType, expStatus); } } if (!WAFContext.Session.Access.IsAdmin()) exp = exp & AqlUrlStatus.SiteId == WAFContext.Session.SiteId; var session = WAFContext.Session; IEnumerable<UrlStatus> urls = WAFContext.Engine.SystemSession.GetContents<UrlStatus>(exp); _links = WAFContext.Session.GetLinks(urls); _links = ( from l in _links orderby l.Url, l.LinkType, l.Content.Name, l.PropertyName where session.Access.IsMember(l.Content.EditAccessGroupId) select l).ToList(); QueryData qd = new QueryData(); qd.AddField("Index", DataValueType.IntegerType); qd.AddField("Key", DataValueType.LongStringType); qd.AddField("Tooltip", DataValueType.LongStringType); for (int i = 0; i < _links.Count; i++) qd.AddRow(i, _links[i].Content.Key.ToString() + "_" + i + "_" + _links[i].Url.Replace("_", "###").Replace(Environment.NewLine, ""), getToolTip(_links[i])); lst.IQuery = new DataQuery(qd); }