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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 4
0
        // 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));
        }