public Dictionary <Group, MapPermissionType> GetGroupsPermissions(string folderId) { var folder = _folderManeger.GetMapFolderById(new ObjectId(folderId)); Dictionary <Group, MapPermissionType> groups = new Dictionary <Group, MapPermissionType>(); foreach (var item in folder.Permissions.Groups) { var group = _groupManager.GetGroupById(item.Key); groups.Add(group, item.Value); } return(groups); }
public Dictionary <Group, MapPermissionType> GetGroupsPermissions(string mapId) { var map = _mapManager.GetMapById(new ObjectId(mapId)); Dictionary <Group, MapPermissionType> groups = new Dictionary <Group, MapPermissionType>(); foreach (var item in map.Permissions.Groups) { var group = _groupManager.GetGroupById(item.Key); groups.Add(group, item.Value); } return(groups); }
public ActionResult OpenFolderShared(string Id) { string userIdAsString = User.Identity.GetUserId(); ObjectId userObjectID = new ObjectId(userIdAsString); ObjectId parentID = new ObjectId(Id); var parent = new MapFolderDB(new Settings()).GetMapFolderById(parentID); bool isCurrentFolderSupp = false; if (parent.Model["type"].Equals(SharedCodedData.SHARED_SUPIRIOR)) { parent = _mapFolderDataManager.GetSuperiorMapFolderOfUserShared(userObjectID); parentID = parent.Id; isCurrentFolderSupp = true; } ObjectId prevFolderID = parent.ParentDierctory; var prevFolder = new MapFolderDB(new Settings()).GetMapFolderById(prevFolderID); if (prevFolder != null) { bool isPrevCorrect = false; if (prevFolder.Permissions.Users.Keys.Contains(userObjectID)) { isPrevCorrect = true; } else { foreach (var groupId in prevFolder.Permissions.Groups.Keys) { var group = _groupManager.GetGroupById(groupId); if (group.Members.Keys.Contains(userObjectID)) { isPrevCorrect = true; break; } } } if (!isPrevCorrect) { prevFolder = _mapFolderDataManager.GetSuperiorMapFolderOfUserShared(userObjectID); prevFolderID = prevFolder.Id; } } var mapFolders = _mapFolderDataManager.GetAllSubFolder(parent); if (isCurrentFolderSupp) { mapFolders = this._mapFolderDataManager.GetAllFolders(); } var finalMapFolders = new List <MapFolder>(); foreach (var mapFolder in mapFolders) { if (mapFolder.Id.Equals(parent.Id)) { continue; } if (mapFolder.Permissions.Owner.Key.Equals(userObjectID)) { continue; } if (mapFolder.Permissions.Users.Keys.Contains(userObjectID)) { finalMapFolders.Add(mapFolder); } else { foreach (var groupId in mapFolder.Permissions.Groups.Keys) { var group = _groupManager.GetGroupById(groupId); if (group.Members.Keys.Contains(userObjectID)) { finalMapFolders.Add(mapFolder); } } } } mapFolders = finalMapFolders; var maps = new List <Map>(); if (parent.Model["type"].Equals(SharedCodedData.SHARED_SUPIRIOR)) { var allMaps = _mapDataManager.GetAllMaps(); foreach (var tempMap in allMaps) { if (tempMap.Permissions.Owner.Key.Equals(userObjectID)) { continue; } else if (tempMap.Permissions.Users.Keys.Contains(userObjectID)) { maps.Add(tempMap); } else { var groups = _groupManager.GetAllGroupsOfUser(userObjectID); foreach (var group in groups) { if (tempMap.Permissions.Groups.Keys.Contains(group.Id)) { maps.Add(tempMap); break; } } } } } else { maps = this._mapFolderDataManager.GetAllMapsInFolder(parent).ToList(); } ViewBag.maps = maps; ViewBag.currFolder = parent; ViewBag.currFolderID = parent.Id; ViewBag.currFolderIDString = parent.Id.ToString(); ViewBag.prevFolder = prevFolder; if (prevFolder == null) { ViewBag.prevFolderID = null; } else { ViewBag.prevFolderID = prevFolder.Id; } if (prevFolder != null) { List <MapFolder> prevFOlderInList = new List <MapFolder>() { prevFolder }; mapFolders = prevFOlderInList.Union(mapFolders); List <MapFolder> viewList = mapFolders.ToList(); } return(PartialView("_MySharedFoldersView", mapFolders)); }
// GET: Group /* * public ActionResult Index() * { * var id = User.Identity.GetUserId(); * ObjectId oId = new ObjectId(id); * IEnumerable<Group> groups = _groupManager.GetAllGroupsOfUser(oId); * List<GroupListViewModel> lmv = new List<GroupListViewModel>(); * foreach (var group in groups) * { * var email = UserManager.GetEmail(group.Creator.ToString()); * GroupListViewModel tmp = new GroupListViewModel { Id = group.Id , Name = group.Name, Creator = email, Description = group.Description, CreationTime = group.CreationTime, Size = group.Members.Count }; * lmv.Add(tmp); * } * return View(lmv); * } */ // GET: Group/Details/5 public ActionResult Details(string id) { var oId = new ObjectId(id); Group group = _groupManager.GetGroupById(oId); var email = UserManager.GetEmail(group.Creator.ToString()); GroupDetailsViewModel dvm = new GroupDetailsViewModel { Id = group.Id.ToString(), Name = group.Name, Description = group.Description, CreationTime = group.CreationTime, CreatorEmail = email, Members = group.Members }; ViewBag.GroupID = id; return(View(dvm)); }