Exemplo n.º 1
0
        public ActionResult UpdateGroupClaims(GroupClaims data)
        {
            //var model = Newtonsoft.Json.JsonConvert.DeserializeObject<GroupClaims>(data);

            var res = _cmsRepository.updateGroupClaims(data);

            if (res)
            {
                return(Json("Success"));
            }
            //return Response.Status = "OK";  //AsJson(new { status = true, reason = "OK", data = "" });
            return(Json("An Error Has occourred")); //Newtonsoft.Json.JsonConvert.SerializeObject(data);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Изменение прав для группы
        /// При этом необходимо всем пользователям этой группы поменять в другой таблице (раньше можно было отдельным пользователям давать отдельные права)
        /// </summary>
        /// <param name="groupClaim"></param>
        /// <returns></returns>
        public override bool updateGroupClaims(GroupClaims groupClaim)
        {
            using (var db = new CMSdb(_context))
            {
                using (var tran = db.BeginTransaction())
                {
                    cms_resolutions_templates cdGroupResolution = null;

                    if (string.IsNullOrEmpty(groupClaim.GroupAlias) || groupClaim.ContentId == Guid.Empty)
                    {
                        throw new Exception("updateGroupClaims: alias or contentId Is Null Or Empty");
                    }


                    var query = db.cms_resolutions_templatess
                                .Where(t => t.f_menu_id == groupClaim.ContentId)
                                .Where(t => t.f_user_group == groupClaim.GroupAlias);

                    if (!query.Any())
                    {
                        cdGroupResolution = new cms_resolutions_templates()
                        {
                            f_user_group = groupClaim.GroupAlias,
                            f_menu_id    = groupClaim.ContentId
                        }
                    }
                    ;
                    else
                    {
                        cdGroupResolution = query.SingleOrDefault();
                    }

                    switch (groupClaim.Claim)
                    {
                    case ClaimType.read:
                        cdGroupResolution.b_read = groupClaim.Checked;
                        break;

                    case ClaimType.write:
                        cdGroupResolution.b_write = groupClaim.Checked;
                        break;

                    case ClaimType.change:
                        cdGroupResolution.b_change = groupClaim.Checked;
                        break;

                    case ClaimType.delete:
                        cdGroupResolution.b_delete = groupClaim.Checked;
                        break;

                    default:
                        return(false);
                    }

                    if (!query.Any())
                    {
                        db.Insert(cdGroupResolution);
                    }
                    else
                    {
                        db.Update(cdGroupResolution);
                    }


                    //Права пользователей группы
                    var groupUsers = db.cms_userss
                                     .Where(p => p.f_group != null)
                                     .Where(p => p.f_group == groupClaim.GroupAlias);
                    if (groupUsers.Any())
                    {
                        foreach (var user in groupUsers.ToArray())
                        {
                            var userClaims = new UserClaims()
                            {
                                UserId    = user.id,
                                ContentId = groupClaim.ContentId,
                                Claim     = groupClaim.Claim,
                                Checked   = groupClaim.Checked
                            };
                            updateUserClaims(userClaims);
                        }
                    }

                    tran.Commit();
                    return(true);
                }
            }
        }
Exemplo n.º 3
0
 public abstract bool updateGroupClaims(GroupClaims GroupClaim);