Class AccessAttribute
Defines the ACL list for a typed ContentType.
Inheritance
Implements
Inherited Members
Namespace: EPiServer.DataAnnotations
Assembly: EPiServer.dll
Version: 10.10.4Syntax
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public class AccessAttribute : Attribute, _Attribute
Remarks
This attribute only has effect if it is paired with the ContentTypeAttribute. The values from this attribute are used to create the ACL list on the ContentType object. Access rights can be set for Users, Roles and Visitor groups.
Refer to "Attributes" and "Pages, Page Types and Page Templates" under "Content" in the Developer Guide for more information and examples.
Examples
Here is an example on how you can set access on your page type using the Access attribute.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using EPiServer.Core;
using EPiServer.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using EPiServer.Security;
using EPiServer;
using EPiServer.Web;
using EPiServer.Shell.ObjectEditing.EditorDescriptors;
using EPiServer.Shell.ObjectEditing;
using EPiServer.DataAbstraction;
namespace CodeSamples
{
[ContentType(
DisplayName="My Page Type",
Description="Description for this page type",
Order=1024,
GUID="9CBBF910-CB5A-4C72-83AA-EDCF02E8A2BD",
GroupName="My Group",
AvailableInEditMode=true)]
[AvailableContentTypes(Include = new Type[] { typeof(MyPageType2), typeof(MyPageType3) })]
[Access(Users = "niis", Roles = "CmsEditors")]
public class TypedPageWithAttributeSample : PageData
{
[Required]
[Searchable]
[CultureSpecific]
[Editable(true)]
[Display(
Name = "My Heading",
Description = "Heading for my page type.",
GroupName = "My Tab",
Order = 64)]
public virtual string Heading { get; set; }
//An integer between 0 and 130.
[Range(0, 130)]
public virtual int Age { get; set; }
//Validating against a given regular expression.
[RegularExpression("[SomeRegularExpression]")]
public virtual string CustomValidation { get; set; }
//A string with a maximum length of 20 characters.
[StringLength(20)]
public virtual string Header { get; set; }
//Any URL
public virtual Url RedirectPage { get; set; }
//Reference to an image in the EPiServer media system.
[UIHint(UIHint.Image)]
public virtual ContentReference Logotype { get; set; }
//URL to image is also supported but mostly for upgrade support or when there is a need to add custom query parameters to the URL.
[UIHint(UIHint.Image)]
public virtual Url LogotypeAsUrl { get; set; }
//Creates a selection of predefined values.
[SelectOne(SelectionFactoryType=typeof(CustomLanguageSelectionFactory))]
public virtual string LanguageSelection { get; set; }
//Creates a selection of predefined values with the option to select several items.
[SelectMany(SelectionFactoryType=typeof(CustomLanguageSelectionFactory))]
public virtual string MultipleLanguageSelection { get; set; }
}
public class CustomLanguageSelectionFactory : ISelectionFactory
{
public IEnumerable<ISelectItem> GetSelections(ExtendedMetadata metadata)
{
var languages = new List<SelectItem>();
languages.Add(new SelectItem() { Text = "English", Value = "en"});
languages.Add(new SelectItem() { Text = "Swedish", Value = "sv" });
languages.Add(new SelectItem() { Text = "Norwegian", Value = "no" });
return languages;
}
}
[AvailableContentTypes(IncludeOn = new Type[] { typeof(TypedPageWithAttributeSample) })]
[ContentType]
public class MyPageType1 : PageData { }
[AvailableContentTypes(Exclude = new Type[] { typeof(TypedPageWithAttributeSample) })]
[ContentType]
public class MyPageType2 : PageData { }
[AvailableContentTypes(ExcludeOn = new Type[] { typeof(MyPageType1) })]
[ContentType]
public class MyPageType3 : PageData { }
[AvailableContentTypes(Availability = Availability.None)]
[ContentType]
public class MyPageType4 : PageData { }
}
Constructors
AccessAttribute()
Initializes a new instance of the AccessAttribute class.
Declaration
public AccessAttribute()
Properties
Access
Gets the access level.
Declaration
public AccessLevel Access { get; set; }
Property Value
Type | Description |
---|---|
AccessLevel |
NameSeparator
Gets or sets the characters used to separate the names for the users, roles, and visitor groups. Default value is ",".
Declaration
public string NameSeparator { get; set; }
Property Value
Type | Description |
---|---|
System.String |
Roles
Gets the names of the roles that has the access level
Declaration
public string Roles { get; set; }
Property Value
Type | Description |
---|---|
System.String |
Users
Gets the names of the users that has the access level
Declaration
public string Users { get; set; }
Property Value
Type | Description |
---|---|
System.String |
VisitorGroups
Gets the names of the visitor groups that has the access level
Declaration
public string VisitorGroups { get; set; }
Property Value
Type | Description |
---|---|
System.String |