📚 Product Knowledge
Administering
📖 Docs

Administering - Access Rights, Content Types, Scheduled Jobs

Exam Area: Content Area 1 – Product Knowledge (15%)
Reference: https://docs.developers.optimizely.com/content-management-system/docs/administration-interface


1. Admin Interface

Access: /episerver/cms/admin

Main sections in Admin:


2. Access Rights

ACL Structure:

Each content item has its own Access Control List (ACL).

PermissionDescription
ReadView content
CreateCreate items inside
ChangeEdit content
DeleteDelete content
PublishPublish/unpublish
AdministerManage access rights

Inheritance principle:

In Code:

using EPiServer.Security;

// Check access rights
var contentSecurityRepository = ServiceLocator.Current
    .GetInstance<IContentSecurityRepository>();

var security = contentSecurityRepository.Get(contentLink);
var hasAccess = security.HasAccess(user, AccessLevel.Publish);

// Set access rights
var acl = contentSecurityRepository.Get(contentLink).CreateWritableClone();
acl.AddEntry(new AccessControlEntry("WebEditors", AccessLevel.Read | AccessLevel.Create));
contentSecurityRepository.Save(acl, SecuritySaveType.MergeChildPermissions);

3. Content Types (Admin View)

Viewing and managing content types:

Content Type Settings:

[ContentType(
    DisplayName = "Article Page",
    GUID = "b8fe8485-587d-4880-b485-a52430ea55de",
    Description = "Basic page type for articles",
    GroupName = "Standard Pages"  // Group in Admin
)]
[ImageUrl("/icons/article.png")]  // Icon in UI
public class ArticlePage : PageData { }

4. Change Log

Change Log records all changes in the CMS.

Access:

Information recorded:

Configuring Change Log:

// In Startup.cs or appsettings.json
// Configure retention period
{
  "EPiServer": {
    "CMS": {
      "ChangeLogEnabled": true
    }
  }
}

5. Scheduled Jobs (Admin View)

Scheduled Jobs are tasks that run automatically on a schedule.

Built-in Scheduled Jobs:

JobDescription
Clear Thumbnail PropertiesClear thumbnail cache
Fetch External LinksCheck for broken links
Mirroring ServiceSynchronize content between sites
Publish Delayed ContentPublish scheduled content
Remove Permanent EditingClean up editing locks
Remove Temporary FilesDelete temporary files
SubscriptionProcess subscriptions
Trim Content VersionsLimit the number of versions

Configuring in Admin:


6. Website Configuration

Admin → Config → Websites:

// SiteDefinition in code
var siteDefinition = new SiteDefinition
{
    Name = "My Site",
    SiteUrl = new Uri("https://example.com"),
    StartPage = new ContentReference(5),  // ID of the Start Page
    Language = new CultureInfo("en")
};

7. Users and Roles

In Admin:

Built-in roles:


8. Languages (Admin)


Review Questions

  1. What is the path to the Admin view? (/episerver/cms/admin)
  2. How many access levels exist in CMS? (6: Read, Create, Change, Delete, Publish, Administer)
  3. Where do pages inherit access rights from? (From the parent page)
  4. What does the Change Log record? (All changes: who, when, what)
  5. Which Scheduled Job automatically publishes scheduled content? (Publish Delayed Content)