You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,96 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="RoleGroup.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace System.Web.UI.WebControls {
|
||||
|
||||
using System.ComponentModel;
|
||||
using System.Security.Principal;
|
||||
using System.Web.Security;
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// Associates a collection of roles with a template.
|
||||
/// </devdoc>
|
||||
public sealed class RoleGroup {
|
||||
private ITemplate _contentTemplate;
|
||||
private string[] _roles;
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// The template associated with the roles.
|
||||
/// </devdoc>
|
||||
[
|
||||
Browsable(false),
|
||||
DefaultValue(null),
|
||||
PersistenceMode(PersistenceMode.InnerProperty),
|
||||
TemplateContainer(typeof(LoginView)),
|
||||
]
|
||||
public ITemplate ContentTemplate {
|
||||
get {
|
||||
return _contentTemplate;
|
||||
}
|
||||
set {
|
||||
_contentTemplate = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// The roles associated with the template.
|
||||
/// </devdoc>
|
||||
[
|
||||
TypeConverterAttribute(typeof(StringArrayConverter)),
|
||||
]
|
||||
public string[] Roles {
|
||||
get {
|
||||
if (_roles == null) {
|
||||
return new string[0];
|
||||
}
|
||||
else {
|
||||
// Must clone to preserve encapsulation
|
||||
return (string[]) _roles.Clone();
|
||||
}
|
||||
}
|
||||
set {
|
||||
if (value == null) {
|
||||
_roles = value;
|
||||
}
|
||||
else {
|
||||
// Must clone to preserve encapsulation
|
||||
_roles = (string[]) value.Clone();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// Whether the user is in any of the roles.
|
||||
/// </devdoc>
|
||||
public bool ContainsUser(IPrincipal user) {
|
||||
if (user == null) {
|
||||
throw new ArgumentNullException("user");
|
||||
}
|
||||
if (_roles == null) {
|
||||
return false;
|
||||
}
|
||||
foreach (string role in _roles) {
|
||||
if (user.IsInRole(role)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// For appearance in designer collection editor.
|
||||
/// </devdoc>
|
||||
public override string ToString() {
|
||||
StringArrayConverter converter = new StringArrayConverter();
|
||||
return converter.ConvertToString(Roles);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user