object delete_category_user(string id) { var site = (Site)jc["site"]; using (ILinqContext <CategoryUsers> cx = CategoryUsers.CreateContext()) { var relation = (from q in cx where q.SiteId == site.Id && q.Id == id select q).FirstOrDefault(); if (relation == null) { return new { code = -1, msg = "指定的栏目与用户的关系不存在" } } ; //TODO 之前创建的文章的作者如何处理? cx.Remove(relation); cx.SubmitChanges(); } return(new { code = 1, msg = "删除成功" }); } #endregion }
object delete(string userId) { var site = (Site)jc["site"]; using (ILinqContext <SiteUsers> cx = SiteUsers.CreateContext()) { var relation = (from q in cx where q.SiteId == site.Id && q.UserId == userId select q).FirstOrDefault(); if (relation == null) { return new { code = -1, msg = "指定的用户在该站点下不存在" } } ; if (relation.UserId == jc.UserName) { return new { code = -2, msg = "不能删除自己的账号" } } ; //删除栏目与用户的关系 CategoryUsers.Where("SiteId = {0}", site.Id).Where("UserId = {0}", relation.UserId).Delete(); //删除站点用户关系 cx.Remove(relation); cx.SubmitChanges(); } return(new { code = 1, msg = "删除成功" }); }
object list_with_permission(string parentId) { var site = (Site)jc["site"]; #region 校验用户对站点的权限 var relation = (from q in SiteUsers.CreateContext() where q.UserId == jc.UserName && q.SiteId == site.Id select q).FirstOrDefault(); //如果没有站点的管理权限 if (relation == null) { return new { code = 403, msg = "没有权限访问" } } ; #endregion WebQuery qc = new WebQuery(); qc.Id = "category.list.permission"; qc.LoadCondidtion(); qc.NoPaging(); #region 加载参数 qc["parentId"] = string.IsNullOrWhiteSpace(parentId) ? string.Empty : parentId; qc["site"] = site.Id; qc["userId"] = jc.UserName; #endregion var dt = CategoryUsers.GetDataTable(qc); var data = new ArrayList(); foreach (DataRow item in dt.Rows) { data.Add(new { id = item["id"].ToString(), name = item["title"].ToString(), isParent = item["hasChildren"].ToBoolean() }); } return(data); }
object add_category_user(string userId, bool all, string[] categoryIds) { #region 校验参数 var site = (Site)jc["site"]; var user = User.Get(userId); if (user == null) { return new { code = -1, msg = "指定的用户不存在" } } ; if (!all && categoryIds.Length == 0) { return new { code = -2, msg = "要添加的栏目不能为空" } } ; #region 处理栏目 List <Category> categories = null; IQueryable <Category> query = null; if (all) { query = (from q in Category.CreateContext() where q.SiteId == site.Id select q); } else { query = (from q in Category.CreateContext() where q.SiteId == site.Id && new List <string>(categoryIds).Contains(q.Id) select q); } categories = query.ToList(); #endregion if (categories.Count == 0) { return new { code = -3, msg = "指定的栏目不存在" } } ; #endregion using (ILinqContext <CategoryUsers> cx = CategoryUsers.CreateContext()) { var relations = (from q in CategoryUsers.CreateContext() where q.SiteId == site.Id && q.UserId == user.Id select q).ToList(); foreach (var item in categories) { //若存在,则不再增加 if (relations.FirstOrDefault(a => { return(a.CategoryId == item.Id); }) != null) { continue; } var relation = new CategoryUsers(); relation.Id = StringUtil.UniqueId(); relation.CategoryId = item.Id; relation.UserId = user.Id; relation.SiteId = site.Id; relation.DateCreated = DateTime.Now; cx.Add(relation, true); } cx.SubmitChanges(true); } return(new { code = 1, msg = "保存成功" }); }
object category_list(string userId, string title) { var site = (Site)jc["site"]; var user = User.Get(userId); if (user == null) { return new { code = -1, msg = "指定的用户不存在" } } ; WebQuery q = new WebQuery(); q.Id = "users.category.list"; q.LoadCondidtion(); q["siteId"] = site.Id; q["userId"] = user.Id; if (!string.IsNullOrEmpty(title)) { q["title"] = title; } q.TotalCount = CategoryUsers.Count(q); if (q.PageIndex1 > q.PageCount) { q.PageIndex = Math.Max(q.PageCount - 1, 0); } var dt = CategoryUsers.GetDataTable(q); var data = new ArrayList(); foreach (DataRow item in dt.Rows) { data.Add(new { id = item["id"].ToString(), category_title = item["title"].ToString(), post_count = item["postCount"].ToInt(), date_created = item["dateCreated"].ToDateTime(), }); } return(new { code = 1, user = new { id = user.Id, display_name = user.DisplayName }, data = data, paging = new { total_count = q.TotalCount, page_size = q.PageSize, page_index = q.PageIndex1 }, orderbys = q.orderbys }); }