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)); }
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 })); }