Exemplo n.º 1
0
        public ActionResult Permissions(int id)
        {
            var model = new MODEL_USERGROUP_PERMISSIONS_Index {
                TBL_USERGROUP = new TBL_USERGROUP(), TBL_USERGROUP_PERMISSIONS = new List <TBL_USERGROUP_PERMISSION>(), TBL_PERMISSION_POOL = new List <TBL_PERMISSION>()
            };

            // Grubun bilgilerini alalım
            var userGroup = new BLLUserGroup().GetByID(id);

            // Kullanılabilir ana yetkileri çekiyoruz
            var usergroupPermissionPool = new BLLPermission().GetPermissionsByParentID(null, true).ToList();

            // Grubun şu an ki yetkilerini çekiyoruz
            var usergroupPermissions = new BLLUserGroupPermission().Search(id).ToList();


            // Kullanılabilir yetkiler arasından grubunkileri çıkartıyoruz
            foreach (var ugPerm in usergroupPermissions)
            {
                var found = usergroupPermissionPool.FirstOrDefault(w => w.ID == ugPerm.PERMISSION_ID);
                if (found != null)
                {
                    usergroupPermissionPool.Remove(found);
                }
            }

            model.TBL_USERGROUP = userGroup;
            model.TBL_PERMISSION_POOL.AddRange(usergroupPermissionPool);
            model.TBL_USERGROUP_PERMISSIONS.AddRange(usergroupPermissions);

            return(View(model));
        }
Exemplo n.º 2
0
        public ActionResult PermissionChange(int userId, int permissionId)
        {
            var bllUserPermission = new BLLUserPermission();
            var bllPermission     = new BLLPermission();
            var returnPerms       = new List <int>();
            var userPermList      = bllUserPermission.GetUserPermissions(userId);
            var thisPermission    = bllPermission.GetByID(permissionId);

            // Seçilen ID'yi ekle
            returnPerms.Add(permissionId);

            // Seçilen ID'nin sub'ları varsa onları da ekle
            var subPerms = bllPermission.GetPermissionsByParentID(permissionId);

            foreach (var subPerm in subPerms)
            {
                if (userPermList.All(a => a.PERMISSION_ID != subPerm.ID))
                {
                    returnPerms.Add(subPerm.ID);
                }
            }

            if (thisPermission.PARENT_ID != null)
            {
                if (userPermList.Any(a => a.PERMISSION_ID == thisPermission.PARENT_ID))
                {
                    returnPerms.Clear();
                }
            }

            if (returnPerms.Any())
            {
                // bu kullanıcıda bu yetki var mı ? varsa sil, yoksa ekle.
                var permList = bllUserPermission.GetUserPermissions(userId, permissionId);

                if (permList.Any())
                {
                    foreach (var item in permList)
                    {
                        bllUserPermission.Delete(item.ID, true);
                    }
                }
                else
                {
                    bllUserPermission.Add(new TBL_USER_PERMISSION {
                        USER_ID = userId, PERMISSION_ID = permissionId
                    });
                }
            }

            return(Json(new { returnPerms }));
        }