📄 gallerypermissionadmin.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI.WebControls;
using CommunityServer.Components;
using CommunityServer.Controls;
using CommunityServer.Galleries.Components;
namespace CommunityServer.Galleries.Controls
{
/// <summary>
/// Summary description for GalleryPermissionAdmin.
/// </summary>
public class GalleryPermissionAdmin : GalleryAdminTemplatedWebControl
{
Gallery gallery;
#region Public Properties
[DefaultValue( 0 )]
public virtual int GalleryID
{
get
{
Object state = ViewState["GalleryID"];
if(state != null)
return (int)state;
return 0;
}
set { ViewState["GalleryID"] = value; }
}
#endregion
#region Child Controls
HyperLink GalleryIDLink;
HyperLink RoleIDLink;
AccessControlEntryRadioButtonList View;
AccessControlEntryRadioButtonList Post;
AccessControlEntryRadioButtonList Reply;
AccessControlEntryRadioButtonList Edit;
AccessControlEntryRadioButtonList Delete;
AccessControlEntryRadioButtonList Vote;
AccessControlEntryRadioButtonList Moderate;
Button Save;
#endregion
protected override void OnLoad(EventArgs e)
{
if(!Page.IsPostBack)
{
GalleryID = CSContext.Current.ForumID;
this.DataBind();
}
base.OnLoad (e);
}
protected override void AttachChildControls()
{
GalleryIDLink = (HyperLink)FindControl( "GalleryID" );
RoleIDLink = (HyperLink)FindControl( "RoleID" );
View = (AccessControlEntryRadioButtonList)FindControl( "View" );
Post = (AccessControlEntryRadioButtonList)FindControl( "Post" );
Reply = (AccessControlEntryRadioButtonList)FindControl( "Reply" );
Edit = (AccessControlEntryRadioButtonList)FindControl( "Edit" );
Delete = (AccessControlEntryRadioButtonList)FindControl( "Delete" );
Vote = (AccessControlEntryRadioButtonList)FindControl( "Vote" );
Moderate = (AccessControlEntryRadioButtonList)FindControl( "Moderate" );
Save = (Button)FindControl( "Save" );
Save.Click += new EventHandler( Save_Click );
}
public override void DataBind()
{
base.DataBind();
Save.Text = ResourceManager.GetString( "Save" );
GalleryPermission permission = GetCurrentPermission();
if ( permission != null )
LoadPermission( permission );
}
private Guid GetGuidFromQueryString( String key)
{
Guid g = Guid.Empty;
string value = HttpContext.Current.Request[ key ];
if(value != null)
{
try
{
g = new Guid(value);
}
catch { }
}
return g;
}
protected virtual void LoadPermission( GalleryPermission permission )
{
Role role = Roles.GetRole( permission.RoleID, false );
if(GalleryID != -1)
{
gallery = Galleries.GetGallery(GalleryID, false);
GalleryIDLink.Text = string.Format("{0} (AppKey:{1}, GalleryID:{2})", gallery.Name, gallery.ApplicationKey, gallery.SectionID);
GalleryIDLink.NavigateUrl = GalleryUrls.Instance().Admin_AdminGallery(GalleryID);
}
else
FindControl( "GalleryIDRow" ).Visible = false;
RoleIDLink.Text = role.Name + ": " + permission.RoleID.ToString();
RoleIDLink.NavigateUrl = Globals.GetSiteUrls().AdminRoleEdit( permission.RoleID );
View.SelectedBooleanValue = permission.View;
Post.SelectedBooleanValue = permission.Post;
Reply.SelectedBooleanValue = permission.Reply;
Edit.SelectedBooleanValue = permission.Edit;
Delete.SelectedBooleanValue = permission.Delete;
Vote.SelectedBooleanValue = permission.Vote;
Moderate.SelectedBooleanValue = permission.Moderate;
}
protected virtual void SavePermission( GalleryPermission permission )
{
permission.SectionID = permission.SectionID;
permission.RoleID = permission.RoleID;
Permission mask;
mask = Permission.View;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), View.SelectedValue ));
mask = Permission.Post;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Post.SelectedValue ));
mask = Permission.Reply;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Reply.SelectedValue ));
mask = Permission.Edit;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Edit.SelectedValue ));
mask = Permission.Delete;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Delete.SelectedValue ));
mask = Permission.Vote;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Vote.SelectedValue ));
mask = Permission.Moderate;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Moderate.SelectedValue ));
permission.ApplicationType = ApplicationType.Gallery;
Permissions.UpdatePermission( permission );
}
private void Save_Click(object sender, EventArgs e)
{
GalleryPermission permission = GetCurrentPermission();
if(permission != null)
SavePermission( permission );
if(!Globals.RedirectSiteUrl())
Context.Response.Redirect(GalleryUrls.Instance().Admin_ManageDefaultPermissions, true);
}
private GalleryPermission GetCurrentPermission()
{
Guid roleID = this.GetGuidFromQueryString( "RoleID" );
GalleryPermission perm = GalleryPermissions.GetGalleryPermission( GalleryID, roleID );
if( perm == null ) {
perm = new GalleryPermission();
perm.SettingsID = CSContext.Current.SiteSettings.SettingsID;
perm.SectionID = GalleryID;
perm.RoleID = roleID;
perm.ApplicationType = ApplicationType.Gallery;
}
return perm;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -