コード例 #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get the media library ID
        libraryId = QueryHelper.GetInteger("libraryId", 0);

        // Get library info
        MediaLibraryInfo mli = MediaLibraryInfoProvider.GetMediaLibraryInfo(libraryId);

        if (mli != null)
        {
            InitalizeMenu();

            // Initialize the page title
            string[,] breadcrumbs = new string[2, 3];
            breadcrumbs[0, 0]     = GetString("media.header.itemlistlink");
            breadcrumbs[0, 1]     = "~/CMSModules/MediaLibrary/Tools/Library_List.aspx";
            breadcrumbs[0, 2]     = "_parent";
            breadcrumbs[1, 0]     = mli.LibraryDisplayName;
            breadcrumbs[1, 1]     = "";
            breadcrumbs[1, 2]     = "";

            this.CurrentMaster.Title.TitleText   = GetString("media.header.headercaption");
            this.CurrentMaster.Title.TitleImage  = ResolveUrl(GetImageUrl("Objects/Media_Library/object.png"));
            this.CurrentMaster.Title.Breadcrumbs = breadcrumbs;

            this.CurrentMaster.Title.HelpTopicName = "library_files";
            this.CurrentMaster.Title.HelpName      = "helpTopic";

            this.CurrentMaster.BodyClass += " MediaLibrary LightTabs";
        }
    }
コード例 #2
0
        public async Task UpsertAllMediaFiles(MediaLibraryInfo mediaLibrary)
        {
            try
            {
                SyncLog.Log($"Synchronizing files for media library {mediaLibrary.LibraryDisplayName}");

                SyncLog.LogEvent(EventType.INFORMATION, "KenticoKontentPublishing", "UPSERTMEDIAFILES", mediaLibrary.LibraryDisplayName);

                var mediaFiles = MediaFileInfoProvider.GetMediaFiles()
                                 .WhereEquals("FileLibraryID", mediaLibrary.LibraryID)
                                 .BinaryData(false);

                var index = 0;

                foreach (var mediaFile in mediaFiles)
                {
                    index++;

                    SyncLog.Log($"Media file {mediaFile.FilePath} ({index}/{mediaFiles.Count})");

                    await SyncMediaFile(mediaFile);
                }
            }
            catch (Exception ex)
            {
                SyncLog.LogException("KenticoKontentPublishing", "UPSERTMEDIAFILES", ex);
                throw;
            }
        }
コード例 #3
0
        public async Task <IViewComponentResult> InvokeAsync(string folderName, string filterText, MediaSettingKeys mediaSettingKeys)
        {
            MediaLibraryInfo libraryInfo = new MediaLibraryInfo();


            MediaCategory mediaCategory = new MediaCategory(); //Get Username here later

            if (string.IsNullOrEmpty(folderName))
            {
                mediaCategory.BaseCategory = (mediaSettingKeys.MediaReadLocation == MediaReadLocationType.System) ? "" : mediaSettingKeys.FolderName;
            }
            else
            {
                mediaCategory.BaseCategory = folderName;
            }
            MediaSettingController settingController = new MediaSettingController();

            if (!string.IsNullOrEmpty(filterText))
            {
                libraryInfo.MediaCategories = MediaHelper.FileterDirectoryAndFiles(mediaCategory.BaseCategory, filterText);
            }
            else if (string.IsNullOrEmpty(mediaCategory.BaseCategory))
            {
                libraryInfo.MediaCategories = MediaHelper.GetMediaCategory(mediaCategory, mediaSettingKeys);
            }
            else
            {
                libraryInfo.MediaCategories = MediaHelper.GetMediaCategoryByPath(mediaCategory, mediaSettingKeys);
            }
            libraryInfo.MediaSettingKeys = mediaSettingKeys;
            return(await Task.FromResult((IViewComponentResult)View("Default", libraryInfo)));
        }
コード例 #4
0
    /// <summary>
    /// Adds role permission to media library. Called when the "Add role permission to library " button is pressed.
    /// Expects the CreateMediaLibrary method to be run first.
    /// </summary>
    private bool AddRolePermissionToLibrary()
    {
        // Get the media library
        MediaLibraryInfo mediaLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName);

        // Get the role
        RoleInfo libraryRole = RoleInfoProvider.GetRoleInfo("CMSDeskAdmin", SiteContext.CurrentSiteID);

        // Get the permission
        PermissionNameInfo libraryPermission = PermissionNameInfoProvider.GetPermissionNameInfo("FileCreate", "CMS.MediaLibrary", null);

        if ((mediaLibrary != null) && (libraryRole != null) && (libraryPermission != null))
        {
            // Create a new media library role permision info
            MediaLibraryRolePermissionInfo rolePermission = new MediaLibraryRolePermissionInfo();

            // Set the values
            rolePermission.LibraryID    = mediaLibrary.LibraryID;
            rolePermission.RoleID       = libraryRole.RoleID;
            rolePermission.PermissionID = libraryPermission.PermissionId;

            // Add role permission to media library
            MediaLibraryRolePermissionInfoProvider.SetMediaLibraryRolePermissionInfo(rolePermission);

            return(true);
        }

        return(false);
    }
コード例 #5
0
    private void gridElem_OnAction(string actionName, object actionArgument)
    {
        switch (actionName.ToLowerCSafe())
        {
        case "edit":
            SelectedItemID = ValidationHelper.GetInteger(actionArgument, 0);
            RaiseOnEdit();
            break;

        case "delete":
            MediaLibraryInfo mli = MediaLibraryInfoProvider.GetMediaLibraryInfo(ValidationHelper.GetInteger(actionArgument, 0));
            // Check 'Manage' permission
            if (!MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(mli, PERMISSION_MANAGE))
            {
                ShowError(MediaLibraryHelper.GetAccessDeniedMessage(PERMISSION_MANAGE));
                return;
            }
            try
            {
                MediaLibraryInfoProvider.DeleteMediaLibraryInfo(ValidationHelper.GetInteger(actionArgument, 0));
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("Media library", "DELETEOBJ", ex, SiteContext.CurrentSiteID);

                ShowError(ex.Message, EventLogProvider.GetExceptionLogMessage(ex), null);
            }
            break;
        }

        RaiseOnAction(actionName, actionArgument);
    }
コード例 #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        RaiseOnCheckPermissions(PERMISSION_READ, this);

        MediaLibraryInfo libInfo = MediaLibraryInfoProvider.GetMediaLibraryInfo(LibraryID);

        EditedObject = libInfo;

        if (libInfo != null)
        {
            // Set the request timeout
            Server.ScriptTimeout = AttachmentHelper.ScriptTimeout;

            // Register script handling repeated media file creation
            ltlPostBackScript.Text = ScriptHelper.GetScript("function LocalSaveAnother() {" + Page.ClientScript.GetPostBackEventReference(this, null) + "}"
                                                            + " function SaveDocument(nodeId, createAnother){ if ( !createAnother ) { LocalSave(createAnother) } else { LocalSaveAnother() } }");
        }
        else
        {
            pnlMenu.Visible = false;
            pnlForm.Visible = false;

            lblError.Visible = true;
            lblError.Text    = GetString("media.newfile.librarynotexists");
        }

        // Register wopener script
        ScriptHelper.RegisterWOpenerScript(Page);
    }
コード例 #7
0
    /// <summary>
    /// OnBeforeSave event handler.
    /// </summary>
    protected void editElem_OnBeforeSave(object sender, EventArgs e)
    {
        if (editElem.RedirectUrlAfterCreate == null)
        {
            editElem.RedirectUrlAfterCreate = String.Empty;
        }

        if (MediaLibraryGroupID > 0)
        {
            editElem.Data["LibraryGroupID"] = MediaLibraryGroupID;
        }

        // If creating new group library setup default security
        if ((MediaLibraryGroupID > 0) && (MediaLibraryID == 0))
        {
            // Set default group media library security
            MediaLibraryInfo library = (MediaLibraryInfo)editElem.EditedObject;
            library.FileCreate   = SecurityAccessEnum.GroupMembers;
            library.FileDelete   = SecurityAccessEnum.Nobody;
            library.FileModify   = SecurityAccessEnum.Nobody;
            library.FolderCreate = SecurityAccessEnum.Nobody;
            library.FolderDelete = SecurityAccessEnum.Nobody;
            library.FolderModify = SecurityAccessEnum.Nobody;
            library.Access       = SecurityAccessEnum.GroupMembers;
        }
    }
コード例 #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get the media library ID
        libraryId = QueryHelper.GetInteger("libraryId", 0);
        groupId   = QueryHelper.GetInteger("groupid", 0);

        // Get library info
        MediaLibraryInfo mli = MediaLibraryInfoProvider.GetMediaLibraryInfo(libraryId);

        if (mli != null)
        {
            InitalizeMenu();

            // Initialize the page title
            string[,] breadcrumbs           = new string[2, 3];
            breadcrumbs[0, 0]               = GetString("media.header.itemlistlink");
            breadcrumbs[0, 1]               = "~/CMSModules/Groups/Tools/MediaLibrary/Library_List.aspx?groupid=" + groupId;
            breadcrumbs[0, 2]               = "_parent";
            breadcrumbs[1, 0]               = mli.LibraryDisplayName;
            breadcrumbs[1, 1]               = "";
            breadcrumbs[1, 2]               = "";
            CurrentMaster.Title.Breadcrumbs = breadcrumbs;

            CurrentMaster.Title.HelpTopicName = "library_files";
            CurrentMaster.Title.HelpName      = "helpTopic";
        }
    }
コード例 #9
0
    /// <summary>
    /// Initializes the breadcrumbs controls.
    /// </summary>
    private void InitializeBreadcrumbs()
    {
        ucBreadcrumbs.Items.Clear();

        ucBreadcrumbs.AddBreadcrumb(new BreadcrumbItem
        {
            Text          = GetString("Group_General.MediaLibrary.BackToList"),
            OnClientClick = ControlsHelper.GetPostBackEventReference(lnkBackHidden) + "; return false;"
        });

        string itemText = "";

        if (LibraryID > 0)
        {
            MediaLibraryInfo library = MediaLibraryInfoProvider.GetMediaLibraryInfo(LibraryID);
            if (library != null)
            {
                itemText = HTMLHelper.HTMLEncode(library.LibraryDisplayName);
            }
        }
        else
        {
            itemText = GetString("Group_General.MediaLibrary.NewLibrary");
        }

        ucBreadcrumbs.AddBreadcrumb(new BreadcrumbItem {
            Text = itemText,
        });
    }
    /// <summary>
    /// Initializes media file info.
    /// </summary>
    /// <param name="objectGuid">Media file GUID</param>
    /// <param name="siteName">Site name</param>
    private void metaDataEditor_InitializeObject(Guid objectGuid, string siteName)
    {
        // Get mediafile
        mediaFileInfo = MediaFileInfoProvider.GetMediaFileInfo(objectGuid, siteName);

        // If media file is not null
        if (mediaFileInfo != null)
        {
            MediaLibraryInfo mli = MediaLibraryInfoProvider.GetMediaLibraryInfo(ValidationHelper.GetInteger(mediaFileInfo.FileLibraryID, 0));

            // Check permission 'FileModify'
            if (metaDataEditor.CheckPermissions && !MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(mli, "filemodify"))
            {
                RedirectToAccessDenied(GetString("metadata.errors.filemodify"));
            }

            // Fire event GetObjectExtension
            if (GetObjectExtension != null)
            {
                GetObjectExtension(mediaFileInfo.FileExtension);
            }
        }
        else
        {
            RedirectToInformation(GetString("editedobject.notexists"));
        }
    }
コード例 #11
0
    /// <summary>
    /// Reload controls data.
    /// </summary>
    /// <param name="forceReload">Indicates if controls </param>
    public override void ReloadData(bool forceReload)
    {
        // Check media file permissions
        MediaLibraryInfo mli = (MediaLibraryInfo)MediaLibraryInfo;

        // Check authorization to filemodify or manage
        if ((mli != null) && ((MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(mli, "filemodify", CMSContext.CurrentUser) ||
                               MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(mli, "manage", CMSContext.CurrentUser)) || !CheckPermission))
        {
            Enabled = true;

            // Check if module 'Community' is loaded
            if (mli.LibraryGroupID > 0)
            {
                // Check 'GroupAdministrator' permission
                Enabled = (GroupInfo != null) && CMSContext.CurrentUser.IsGroupAdministrator(mli.LibraryGroupID);
            }
        }
        else
        {
            Enabled = false;
        }

        base.ReloadData(forceReload);
    }
コード例 #12
0
        /// <summary>
        /// Retrieves media files with the .jpg extension from the 'SampleMediaLibrary'.
        /// </summary>
        public IActionResult ShowMediaFiles()
        {
            // Gets an instance of the 'SampleMediaLibrary' media library for the current site
            MediaLibraryInfo mediaLibrary = mediaLibraryInfoProvider.Get("SampleMediaLibrary", siteService.CurrentSite.SiteID);

            // Gets a collection of media files with the .jpg extension from the media library
            IEnumerable <MediaFileInfo> mediaLibraryFiles = mediaFileInfoProvider.Get()
                                                            .WhereEquals("FileLibraryID", mediaLibrary.LibraryID)
                                                            .WhereEquals("FileExtension", ".jpg");

            // Prepares a collection of view models containing required data of the media files
            IEnumerable <MediaFileViewModel> model = mediaLibraryFiles.Select(
                mediaFile => {
                IMediaFileUrl fileUrl = mediaFileUrlRetriever.Retrieve(mediaFile);
                return(new MediaFileViewModel
                {
                    FileTitle = mediaFile.FileTitle,
                    // Gets the relative path to the media file
                    RelativeUrl = fileUrl.RelativePath
                });
            }
                );

            // Passes the model to the view
            return(View(model));
        }
コード例 #13
0
    /// <summary>
    /// Gets and bulk updates media libraries. Called when the "Get and bulk update libraries" button is pressed.
    /// Expects the CreateMediaLibrary method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateMediaLibraries()
    {
        // Prepare the parameters
        string where = "LibraryName LIKE 'MyNew%'";

        // Get the data
        DataSet libraries = MediaLibraryInfoProvider.GetMediaLibraries(where, null);

        if (!DataHelper.DataSourceIsEmpty(libraries))
        {
            // Loop through the individual items
            foreach (DataRow libraryDr in libraries.Tables[0].Rows)
            {
                // Create object from DataRow
                MediaLibraryInfo modifyLibrary = new MediaLibraryInfo(libraryDr);

                // Update the property
                modifyLibrary.LibraryDisplayName = modifyLibrary.LibraryDisplayName.ToUpper();

                // Update the media library
                MediaLibraryInfoProvider.SetMediaLibraryInfo(modifyLibrary);
            }

            return(true);
        }

        return(false);
    }
コード例 #14
0
 /// <summary>
 /// Fills editing form with selected library data.
 /// </summary>
 /// <param name="library">Library info holding data</param>
 private void FillForm(MediaLibraryInfo library)
 {
     txtDisplayName.Text = library.LibraryDisplayName;
     txtCodeName.Text    = library.LibraryName;
     txtDescription.Text = library.LibraryDescription;
     txtFolder.Text      = library.LibraryFolder;
     txtFolder.Enabled   = false;
 }
コード例 #15
0
        private Guid AddMediaFile(IFormFile requestFile, MediaLibraryInfo library)
        {
            var mediaFile = new MediaFileInfo(requestFile.ToUploadedFile(), library.LibraryID);

            MediaFileInfo.Provider.Set(mediaFile);

            return(mediaFile.FileGUID);
        }
コード例 #16
0
    /// <summary>
    /// OnCheckPermissions event handler.
    /// </summary>
    private void elemEdit_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        MediaLibraryInfo mli = (MediaLibraryInfo)EditedObject;

        if (!MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(mli, "Read"))
        {
            RedirectToAccessDenied("cms.medialibrary", "Read");
        }
    }
コード例 #17
0
    private void librarySecurity_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        MediaLibraryInfo mli = MediaLibraryInfoProvider.GetMediaLibraryInfo(libraryId);

        if (!MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(mli, "Read"))
        {
            RedirectToAccessDenied("cms.medialibrary", "Read");
        }
    }
コード例 #18
0
    void librarySecurity_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        MediaLibraryInfo mli = MediaLibraryInfoProvider.GetMediaLibraryInfo(QueryHelper.GetInteger("libraryid", 0));

        if (!MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(mli, "Read"))
        {
            CMSPage.RedirectToCMSDeskAccessDenied("cms.medialibrary", "Read");
        }
    }
コード例 #19
0
    /// <summary>
    /// Deletes media library. Called when the "Delete library" button is pressed.
    /// Expects the CreateMediaLibrary method to be run first.
    /// </summary>
    private bool DeleteMediaLibrary()
    {
        // Get the media library
        MediaLibraryInfo deleteLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName);

        // Delete the media library
        MediaLibraryInfoProvider.DeleteMediaLibraryInfo(deleteLibrary);

        return(deleteLibrary != null);
    }
コード例 #20
0
    /// <summary>
    /// Returns direct URL to the media file, user permissions are not checked.
    /// </summary>
    /// <param name="libraryId">Media library ID</param>
    /// <param name="filePath">File path</param>
    public static string GetMediaFileDirectUrl(object libraryId, object filePath)
    {
        MediaLibraryInfo libInfo = MediaLibraryInfoProvider.GetMediaLibraryInfo(ValidationHelper.GetInteger(libraryId, 0));

        if (libInfo != null)
        {
            return(MediaFileInfoProvider.GetMediaFileUrl(CMSContext.CurrentSiteName, libInfo.LibraryFolder, filePath.ToString()));
        }
        return(String.Empty);
    }
    /// <summary>
    /// Returns a value indicating whether the specified media library root folder name is unique.
    /// </summary>
    /// <param name="folderName">A name of the media library root folder.</param>
    private bool IsFolderNameUnique(string folderName)
    {
        MediaLibraryInfo library = MediaLibraryInfoProvider.GetMediaLibraries()
                                   .TopN(1)
                                   .Column("LibraryID")
                                   .WhereEquals("LibraryFolder", folderName)
                                   .WhereEquals("LibrarySiteID", SiteContext.CurrentSiteID)
                                   .FirstOrDefault();

        return((library == null) || (MediaLibraryID == library.LibraryID));
    }
コード例 #22
0
    /// <summary>
    /// Page_Load event handler.
    /// </summary>
    protected void Page_Load(object sender, EventArgs e)
    {
        MediaLibraryInfo mli = (MediaLibraryInfo)EditedObject;

        if (!MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(mli, "Read"))
        {
            RedirectToAccessDenied("cms.medialibrary", "Read");
        }

        elemEdit.OnCheckPermissions += new CMSAdminControl.CheckPermissionsEventHandler(elemEdit_OnCheckPermissions);
        elemEdit.MediaLibraryID      = mli.LibraryID;
    }
コード例 #23
0
 protected void ucMetaFile_OnAfterUpload(object sender, EventArgs e)
 {
     if (MediaLibraryID > 0)
     {
         MediaLibraryInfo info = LibraryInfo;
         if (info != null)
         {
             UpdateImagePath(info);
             MediaLibraryInfoProvider.SetMediaLibraryInfo(info);
         }
     }
 }
コード例 #24
0
    protected void Page_Load(object sender, EventArgs e)
    {
        MediaLibraryInfo mli = MediaLibraryInfoProvider.GetMediaLibraryInfo(QueryHelper.GetInteger("libraryid", 0));

        if (!MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(mli, "Read"))
        {
            RedirectToCMSDeskAccessDenied("cms.medialibrary", "Read");
        }
        EditedObject = mli;

        elemEdit.MediaLibraryID      = mli.LibraryID;
        elemEdit.OnCheckPermissions += new CMSAdminControl.CheckPermissionsEventHandler(elemEdit_OnCheckPermissions);
    }
コード例 #25
0
    private void libraryElem_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        MediaLibraryInfo MediaLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo(libraryId);

        if (permissionType.ToLowerCSafe() == "read")
        {
            // Check 'Read' permission
            if (!MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(MediaLibrary, permissionType))
            {
                RedirectToAccessDenied("cms.medialibrary", "Read");
            }
        }
    }
コード例 #26
0
 protected void ucMetaFile_OnAfterDelete(object sender, EventArgs e)
 {
     if (MediaLibraryID > 0)
     {
         MediaLibraryInfo info = LibraryInfo;
         if (info != null)
         {
             //info.LibraryTeaserPath = String.Empty;
             //info.LibraryTeaserGuid = Guid.Empty;
             UpdateImagePath(info);
             MediaLibraryInfoProvider.SetMediaLibraryInfo(info);
         }
     }
 }
        private Guid AddMediaFile(string requestFileName, MediaLibraryInfo library)
        {
            if (!(Request.Files[requestFileName] is HttpPostedFileWrapper file))
            {
                return(Guid.Empty);
            }

            return(ImageUploaderHelper.Upload(file, path =>
            {
                var mediaFile = new MediaFileInfo(path, library.LibraryID);
                MediaFileInfo.Provider.Set(mediaFile);

                return mediaFile.FileGUID;
            }));
        }
コード例 #28
0
        /// <summary>
        /// Retrieves media files with the .jpg extension from the 'SampleMediaLibrary'.
        /// </summary>
        public ActionResult ShowMediaFiles()
        {
            //DocSection:GetMediaFiles
            // Creates an instance of the 'SampleMediaLibrary' media library for the current site
            MediaLibraryInfo mediaLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo("SampleMediaLibrary", SiteContext.CurrentSiteName);

            // Gets a collection of media files with the .jpg extension from the media library
            IEnumerable <MediaFileInfo> mediaLibraryFiles = MediaFileInfoProvider.GetMediaFiles()
                                                            .WhereEquals("FileLibraryID", mediaLibrary.LibraryID)
                                                            .WhereEquals("FileExtension", ".jpg");

            //EndDocSection:GetMediaFiles

            return(View(mediaLibraryFiles));
        }
コード例 #29
0
 /// <summary>
 /// Initializes the breadcrumbs controls.
 /// </summary>
 private void InitializeBreadcrumbs()
 {
     if (LibraryID > 0)
     {
         MediaLibraryInfo library = MediaLibraryInfoProvider.GetMediaLibraryInfo(LibraryID);
         if (library != null)
         {
             lblEditBack.Text = " <span class=\"TitleBreadCrumbSeparator\">&nbsp;</span> " + HTMLHelper.HTMLEncode(library.LibraryDisplayName);
         }
     }
     else
     {
         lblEditBack.Text = " <span class=\"TitleBreadCrumbSeparator\">&nbsp;</span> " + GetString("Group_General.MediaLibrary.NewLibrary");
     }
 }
コード例 #30
0
    /// <summary>
    /// Deletes media folder. Called when the "Delete folder" button is pressed.
    /// Expects the CreateMediaFolder method to be run first.
    /// </summary>
    private bool DeleteMediaFolder()
    {
        // Get media library
        MediaLibraryInfo library = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName);

        if (library != null)
        {
            // Delete new media folder object
            MediaLibraryInfoProvider.DeleteMediaLibraryFolder(CurrentSiteName, library.LibraryID, "MyNewFolder", false);

            return(true);
        }

        return(false);
    }
コード例 #31
0
    /// <summary>
    /// Creates group media library.
    /// </summary>
    /// <param name="group">Particular group info object</param>
    private void CreateGroupMediaLibrary(GroupInfo group)
    {
        // Set general values
        string codeName = "Library_group_" + group.GroupGUID;

        // Check if library with same name already exists
        MediaLibraryInfo mlInfo = MediaLibraryInfoProvider.GetMediaLibraryInfo(codeName, SiteContext.CurrentSiteID, group.GroupID);
        if (mlInfo == null)
        {
            // Create new object (record) if needed
            mlInfo = new MediaLibraryInfo();
            const string suffix = " media";
            mlInfo.LibraryDisplayName = TextHelper.LimitLength(@group.GroupDisplayName, 200 - suffix.Length, string.Empty) + suffix;
            mlInfo.LibraryFolder = @group.GroupName;
            mlInfo.LibraryName = codeName;
            mlInfo.LibraryDescription = string.Empty;
            mlInfo.LibraryGroupID = @group.GroupID;
            mlInfo.LibrarySiteID = SiteContext.CurrentSiteID;

            // Set security
            mlInfo.FileCreate = SecurityAccessEnum.GroupMembers;
            mlInfo.FileDelete = SecurityAccessEnum.GroupMembers;
            mlInfo.FileModify = SecurityAccessEnum.GroupMembers;
            mlInfo.FolderCreate = SecurityAccessEnum.GroupMembers;
            mlInfo.FolderDelete = SecurityAccessEnum.GroupMembers;
            mlInfo.FolderModify = SecurityAccessEnum.GroupMembers;
            mlInfo.Access = SecurityAccessEnum.GroupMembers;

            try
            {
                MediaLibraryInfoProvider.SetMediaLibraryInfo(mlInfo);
            }
            catch
            {
            }

            // Create additional folders
            //MediaLibraryInfoProvider.CreateMediaLibraryFolder(SiteContext.CurrentSiteName, mlInfo.LibraryID, "Videos", false);
            //MediaLibraryInfoProvider.CreateMediaLibraryFolder(SiteContext.CurrentSiteName, mlInfo.LibraryID, "Other", false);
            //MediaLibraryInfoProvider.CreateMediaLibraryFolder(SiteContext.CurrentSiteName, mlInfo.LibraryID, "Photos & Images", false);
        }
    }
コード例 #32
0
    /// <summary>
    /// Gets and bulk updates media libraries. Called when the "Get and bulk update libraries" button is pressed.
    /// Expects the CreateMediaLibrary method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateMediaLibraries()
    {
        // Prepare the parameters
        string where = "LibraryName LIKE 'MyNew%'";

        // Get the data
        DataSet libraries = MediaLibraryInfoProvider.GetMediaLibraries(where, null);
        if (!DataHelper.DataSourceIsEmpty(libraries))
        {
            // Loop through the individual items
            foreach (DataRow libraryDr in libraries.Tables[0].Rows)
            {
                // Create object from DataRow
                MediaLibraryInfo modifyLibrary = new MediaLibraryInfo(libraryDr);

                // Update the property
                modifyLibrary.LibraryDisplayName = modifyLibrary.LibraryDisplayName.ToUpper();

                // Update the media library
                MediaLibraryInfoProvider.SetMediaLibraryInfo(modifyLibrary);
            }

            return true;
        }

        return false;
    }
コード例 #33
0
    /// <summary>
    /// Creates media library. Called when the "Create library" button is pressed.
    /// </summary>
    private bool CreateMediaLibrary()
    {
        // Create new media library object
        MediaLibraryInfo newLibrary = new MediaLibraryInfo();

        // Set the properties
        newLibrary.LibraryDisplayName = "My new library";
        newLibrary.LibraryName = "MyNewLibrary";
        newLibrary.LibraryDescription = "My new library description";
        newLibrary.LibraryFolder = "MyNewLibrary";
        newLibrary.LibrarySiteID = CMSContext.CurrentSiteID;
        newLibrary.LibraryGUID = Guid.NewGuid();
        newLibrary.LibraryLastModified = DateTime.Now;

        // Create the media library
        MediaLibraryInfoProvider.SetMediaLibraryInfo(newLibrary);

        return true;
    }
コード例 #34
0
    /// <summary>
    /// Creates department media library.
    /// </summary>
    /// <param name="departmentNode">Department node</param>
    private void CreateDepartmentMediaLibrary(TreeNode departmentNode)
    {
        // Set general values
        string departmentName = departmentNode.DocumentName;
        string codeName = "Department_" + departmentNode.NodeGUID;
        string suffix = "";

        // Check if library with same name already exists
        MediaLibraryInfo mlInfo = MediaLibraryInfoProvider.GetMediaLibraryInfo(codeName, CMSContext.CurrentSiteName);
        if (mlInfo != null)
        {
            return;
        }

        // Create new object (record) if needed
        mlInfo = new MediaLibraryInfo();

        suffix = " media library";
        mlInfo.LibraryDisplayName = TextHelper.LimitLength(departmentName, 200 - suffix.Length, "") + suffix;
        mlInfo.LibraryFolder = departmentNode.NodeAlias;
        mlInfo.LibraryDescription = "Media library for " + departmentName + " department.";
        mlInfo.LibraryName = codeName;
        mlInfo.LibrarySiteID = CMSContext.CurrentSiteID;

        // Set security
        mlInfo.FileCreate = SecurityAccessEnum.AuthorizedRoles;
        mlInfo.FileDelete = SecurityAccessEnum.AuthorizedRoles;
        mlInfo.FileModify = SecurityAccessEnum.AuthorizedRoles;
        mlInfo.FolderCreate = SecurityAccessEnum.AuthorizedRoles;
        mlInfo.FolderDelete = SecurityAccessEnum.AuthorizedRoles;
        mlInfo.FolderModify = SecurityAccessEnum.AuthorizedRoles;
        mlInfo.Access = SecurityAccessEnum.AuthorizedRoles;

        try
        {
            MediaLibraryInfoProvider.SetMediaLibraryInfo(mlInfo);
        }
        catch
        {
            return;
        }

        // Create additional folders
        //MediaLibraryInfoProvider.CreateMediaLibraryFolder(CMSContext.CurrentSiteName, mlInfo.LibraryID, "Videos", false);
        //MediaLibraryInfoProvider.CreateMediaLibraryFolder(CMSContext.CurrentSiteName, mlInfo.LibraryID, "Other", false);
        //MediaLibraryInfoProvider.CreateMediaLibraryFolder(CMSContext.CurrentSiteName, mlInfo.LibraryID, "Photos & Images", false);
    }
コード例 #35
0
 /// <summary>
 /// Updates metafile image path.
 /// </summary>
 private void UpdateImagePath(MediaLibraryInfo mli)
 {
     // Update image path according to its meta file
     DataSet ds = MetaFileInfoProvider.GetMetaFiles(ucMetaFile.ObjectID, mli.TypeInfo.ObjectType);
     if (!DataHelper.DataSourceIsEmpty(ds))
     {
         MetaFileInfo metaFile = new MetaFileInfo(ds.Tables[0].Rows[0]);
         mli.LibraryTeaserPath = MetaFileInfoProvider.GetMetaFileUrl(metaFile.MetaFileGUID, metaFile.MetaFileName);
     }
     else
     {
         mli.LibraryTeaserPath = "";
     }
 }
コード例 #36
0
    protected void btnOK_Click(object sender, EventArgs e)
    {
        bool isAuthorized = false;

        // Check 'Manage' permission for user
        if (this.LibraryInfo != null)
        {
            isAuthorized = MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(this.LibraryInfo, "Manage");
        }
        else
        {
            if (CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.MediaLibrary", "Manage"))
            {
                isAuthorized = true;
            }
            else
            {
                if ((this.MediaLibraryGroupID > 0) && (CMSContext.CurrentUser.IsGroupAdministrator(this.MediaLibraryGroupID)))
                {
                    isAuthorized = true;
                }
            }
        }

        // If user isn't authorized let her now
        if (!isAuthorized)
        {
            lblError.Text = MediaLibraryHelper.GetAccessDeniedMessage("Manage");
            lblError.Visible = true;
            return;
        }
        string codeName = txtCodeName.Text;
        if (DisplayMode == ControlDisplayModeEnum.Simple)
        {
            if (this.MediaLibraryID == 0)
            {
                codeName = ValidationHelper.GetCodeName(txtDisplayName.Text, null, "_group_" + Guid.NewGuid());
            }
            else
            {
                codeName = this.LibraryInfo.LibraryName;
            }
        }
        codeName = codeName.Trim();

        // Validate input boxes
        if (!ValidateForm(codeName))
        {
            return;
        }

        // Create new object (record) if needed
        MediaLibraryInfo mli = null;
        if (this.MediaLibraryID > 0)
        {
            mli = this.LibraryInfo;
        }
        else
        {
            mli = new MediaLibraryInfo();
        }

        mli.LibraryDisplayName = txtDisplayName.Text;

        if (txtFolder.Enabled)
        {
            mli.LibraryFolder = txtFolder.Text;
        }

        mli.LibraryDescription = txtDescription.Text;
        mli.LibraryName = codeName;

        // If the library is group related
        if (this.MediaLibraryGroupID > 0)
        {
            mli.LibraryGroupID = this.MediaLibraryGroupID;
            // If creating new group library setup default security

            if (this.MediaLibraryID == 0)
            {
                // Set default group media library security
                mli.FileCreate = SecurityAccessEnum.GroupMembers;
                mli.FileDelete = SecurityAccessEnum.Nobody;
                mli.FileModify = SecurityAccessEnum.Nobody;
                mli.FolderCreate = SecurityAccessEnum.Nobody;
                mli.FolderDelete = SecurityAccessEnum.Nobody;
                mli.FolderModify = SecurityAccessEnum.Nobody;
                mli.Access = SecurityAccessEnum.GroupMembers;
            }
        }

        mli.LibrarySiteID = CMSContext.CurrentSiteID;

        try
        {
            MediaLibraryInfoProvider.SetMediaLibraryInfo(mli);
        }
        catch (Exception ex)
        {
            lblError.Text = ex.Message;
            lblError.Visible = true;
            return;
        }

        if ((mli != null) && (mli.LibraryID != 0))
        {
            // Add teaser image to media library
            ucMetaFile.ObjectID = mli.LibraryID;
            ucMetaFile.UploadFile();
            UpdateImagePath(mli);

            try
            {
                MediaLibraryInfoProvider.SetMediaLibraryInfo(mli);
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
                lblError.Visible = true;
                return;
            }
            // Update current media library id
            this.MediaLibraryID = mli.LibraryID;

            lblInfo.Visible = true;
            lblInfo.Text = GetString("general.changessaved");

            FillForm(mli);

            this.RaiseOnSaved();
        }

        // Reload header if changes were saved
        ScriptHelper.RefreshTabHeader(Page, GetString("general.general"));
    }
コード例 #37
0
 /// <summary>
 /// Fills editing form with selected library data.
 /// </summary>
 /// <param name="library">Library info holding data</param>
 private void FillForm(MediaLibraryInfo library)
 {
     txtDisplayName.Text = library.LibraryDisplayName;
     txtCodeName.Text = library.LibraryName;
     txtDescription.Text = library.LibraryDescription;
     txtFolder.Text = library.LibraryFolder;
     txtFolder.Enabled = false;
 }
コード例 #38
0
 /// <summary>
 /// Updates metafile image path.
 /// </summary>
 private void UpdateImagePath(MediaLibraryInfo mli)
 {
     // Update image path according to its meta file
     DataSet ds = MetaFileInfoProvider.GetMetaFiles(ucMetaFile.ObjectID, mli.TypeInfo.ObjectType, MetaFileInfoProvider.OBJECT_CATEGORY_THUMBNAIL, null, null);
     if (!DataHelper.DataSourceIsEmpty(ds))
     {
         MetaFileInfo metaFile = new MetaFileInfo(ds.Tables[0].Rows[0]);
         mli.LibraryTeaserGuid = metaFile.MetaFileGUID;
         mli.LibraryTeaserPath = MetaFileInfoProvider.GetMetaFileUrl(metaFile.MetaFileGUID, metaFile.MetaFileName);
     }
     else
     {
         mli.LibraryTeaserGuid = Guid.Empty;
         mli.LibraryTeaserPath = String.Empty;
     }
 }
コード例 #39
-3
        /// <summary>
        /// Gets media file info object representing the updated version of original file
        /// </summary>
        private MediaFileInfo GetUpdatedFile(CMS.DataEngine.IDataClass origFileDataClass, UploaderHelper args, MediaLibraryInfo mli)
        {
            // Get info on media file from uploaded file
            MediaFileInfo mediaFile = new MediaFileInfo(args.FilePath, args.MediaLibraryArgs.LibraryID, args.MediaLibraryArgs.FolderPath, args.ResizeToWidth, args.ResizeToHeight, args.ResizeToMaxSide);

            // Create new file based on original
            MediaFileInfo updatedMediaFile = new MediaFileInfo(origFileDataClass)
            {
                // Update necessary information
                FileName = mediaFile.FileName,
                FileExtension = mediaFile.FileExtension,
                FileSize = mediaFile.FileSize,
                FileMimeType = mediaFile.FileMimeType,
                FilePath = mediaFile.FilePath,
                FileModifiedByUserID = mediaFile.FileModifiedByUserID,
                FileBinary = mediaFile.FileBinary,
                FileImageHeight = mediaFile.FileImageHeight,
                FileImageWidth = mediaFile.FileImageWidth,
                FileBinaryStream = mediaFile.FileBinaryStream
            };

            return updatedMediaFile;
        }