Exam Area: Content Area 1 – Product Knowledge (15%)
Reference: https://docs.developers.optimizely.com/content-management-system/docs/administration-interface
Access: /episerver/cms/admin
Each content item has its own Access Control List (ACL).
| Permission | Description |
|---|---|
| Read | View content |
| Create | Create items inside |
| Change | Edit content |
| Delete | Delete content |
| Publish | Publish/unpublish |
| Administer | Manage access rights |
ContentReference.RootPage holds the root access rightsusing 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);
[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 { }
Change Log records all changes in the CMS.
// In Startup.cs or appsettings.json
// Configure retention period
{
"EPiServer": {
"CMS": {
"ChangeLogEnabled": true
}
}
}
Scheduled Jobs are tasks that run automatically on a schedule.
| Job | Description |
|---|---|
| Clear Thumbnail Properties | Clear thumbnail cache |
| Fetch External Links | Check for broken links |
| Mirroring Service | Synchronize content between sites |
| Publish Delayed Content | Publish scheduled content |
| Remove Permanent Editing | Clean up editing locks |
| Remove Temporary Files | Delete temporary files |
| Subscription | Process subscriptions |
| Trim Content Versions | Limit the number of versions |
// 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")
};
WebAdmins – Full admin accessWebEditors – Content editingEveryone – All users (including anonymous)Authenticated – Logged-in users/episerver/cms/admin)