Exemplo n.º 1
0
        public ActionResult Save(int folderid, bool Copyfolder, dynamic Data)
        {
            ActionResult actionResult = new ActionResult();
            IFolderInfo  parentFolder = FolderManager.Instance.GetFolder(folderid);

            if (parentFolder != null)
            {
                parentFolder.FolderPermissions.Clear();

                DotNetNuke.Security.Permissions.PermissionController permController = new DotNetNuke.Security.Permissions.PermissionController();
                ArrayList permArray = permController.GetPermissionByCodeAndKey("SYSTEM_FOLDER", "READ");

                List <PermissionInfo> SYS_FOLDER_PERM = new List <PermissionInfo>();
                if (permArray.Count == 1)
                {
                    SYS_FOLDER_PERM.Add(permArray[0] as PermissionInfo);
                }

                permArray = permController.GetPermissionByCodeAndKey("SYSTEM_FOLDER", "BROWSE");
                if (permArray.Count == 1)
                {
                    SYS_FOLDER_PERM.Add(permArray[0] as PermissionInfo);
                }

                permArray = permController.GetPermissionByCodeAndKey("SYSTEM_FOLDER", "WRITE");
                if (permArray.Count == 1)
                {
                    SYS_FOLDER_PERM.Add(permArray[0] as PermissionInfo);
                }

                foreach (dynamic item in Data.PermissionsRoles)
                {
                    foreach (dynamic p in item.Permissions)
                    {
                        bool   AllowAcess   = bool.Parse(p.AllowAccess.ToString());
                        string PermissionID = p.PermissionId.ToString();
                        if (AllowAcess)
                        {
                            FolderPermissionInfo folderpermissioninfo = new FolderPermissionInfo
                            {
                                AllowAccess  = AllowAcess,
                                PermissionID = Convert.ToInt32(PermissionID)
                            };
                            PermissionInfo SYS_PERM = SYS_FOLDER_PERM.Where(a => a.PermissionID == folderpermissioninfo.PermissionID).FirstOrDefault();
                            if (SYS_PERM != null)
                            {
                                folderpermissioninfo.PermissionKey = SYS_PERM.PermissionKey;
                            }

                            folderpermissioninfo.RoleID = int.Parse(item.RoleId.ToString());
                            parentFolder.FolderPermissions.Add(folderpermissioninfo);
                        }
                    }
                }

                foreach (dynamic item in Data.PermissionsUsers)
                {
                    foreach (dynamic p in item.Permissions)
                    {
                        bool   AllowAcess   = bool.Parse(p.AllowAccess.ToString());
                        string PermissionID = p.PermissionId.ToString();
                        if (AllowAcess)
                        {
                            FolderPermissionInfo folderpermissioninfo = new FolderPermissionInfo
                            {
                                AllowAccess  = AllowAcess,
                                PermissionID = Convert.ToInt32(PermissionID)
                            };
                            PermissionInfo SYS_PERM = SYS_FOLDER_PERM.Where(a => a.PermissionID == folderpermissioninfo.PermissionID).FirstOrDefault();
                            if (SYS_PERM != null)
                            {
                                folderpermissioninfo.PermissionKey = SYS_PERM.PermissionKey;
                            }

                            folderpermissioninfo.UserID = int.Parse(item.UserId.ToString());
                            parentFolder.FolderPermissions.Add(folderpermissioninfo);
                        }
                    }
                }
                FolderManager.Instance.UpdateFolder(parentFolder);
                if (Copyfolder)
                {
                    FolderPermissionController.CopyPermissionsToSubfolders(parentFolder, parentFolder.FolderPermissions);
                }
            }
            Dictionary <int, bool> result = new Dictionary <int, bool>();

            if (Data != null && Data.FolderIds != null && Data.FolderIds.Count > 0)
            {
                foreach (dynamic id in Data.FolderIds)
                {
                    result.Add(int.Parse(id.Value), BrowseUploadFactory.HasBrowseOpenPerm(new Vanjaro.Common.Components.TreeView()
                    {
                        Value = int.Parse(id.Value)
                    }));
                }
            }
            actionResult.Data = result;
            return(actionResult);
        }