📄 forumpermissionadmin.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Web;
using System.Web.UI.WebControls;
using CommunityServer.Components;
using CommunityServer.Controls;
using CommunityServer.Discussions.Components;
namespace CommunityServer.Discussions.Controls
{
public class ForumPermissionAdmin : TemplatedWebControl
{
#region Child Controls
HyperLink ForumID;
HyperLink RoleID;
AccessControlEntryRadioButtonList View;
AccessControlEntryRadioButtonList Read;
AccessControlEntryRadioButtonList Post;
AccessControlEntryRadioButtonList Reply;
AccessControlEntryRadioButtonList Edit;
AccessControlEntryRadioButtonList Delete;
AccessControlEntryRadioButtonList Sticky;
AccessControlEntryRadioButtonList Announce;
AccessControlEntryRadioButtonList CreatePoll;
AccessControlEntryRadioButtonList Vote;
AccessControlEntryRadioButtonList Moderate;
AccessControlEntryRadioButtonList Attachment;
AccessControlEntryRadioButtonList EditOthers;
AccessControlEntryRadioButtonList Admin;
Button Save;
#endregion
protected override void OnLoad(EventArgs e)
{
if ( !Page.IsPostBack )
{
this.DataBind();
}
base.OnLoad (e);
}
protected override void AttachChildControls()
{
ForumID = (HyperLink)FindControl( "ForumID" );
RoleID = (HyperLink)FindControl( "RoleID" );
View = (AccessControlEntryRadioButtonList)FindControl( "View" );
Read = (AccessControlEntryRadioButtonList)FindControl( "Read" );
Post = (AccessControlEntryRadioButtonList)FindControl( "Post" );
Reply = (AccessControlEntryRadioButtonList)FindControl( "Reply" );
Edit = (AccessControlEntryRadioButtonList)FindControl( "Edit" );
Delete = (AccessControlEntryRadioButtonList)FindControl( "Delete" );
Sticky = (AccessControlEntryRadioButtonList)FindControl( "Sticky" );
Announce = (AccessControlEntryRadioButtonList)FindControl( "Announce" );
CreatePoll = (AccessControlEntryRadioButtonList)FindControl( "CreatePoll" );
Vote = (AccessControlEntryRadioButtonList)FindControl( "Vote" );
Moderate = (AccessControlEntryRadioButtonList)FindControl( "Moderate" );
Attachment = (AccessControlEntryRadioButtonList)FindControl( "Attachment" );
EditOthers = (AccessControlEntryRadioButtonList)FindControl( "EditOthers" );
Admin = (AccessControlEntryRadioButtonList)FindControl( "Admin" );
Save = (Button)FindControl( "Save" );
Save.Click += new EventHandler( Save_Click );
}
public override void DataBind()
{
base.DataBind();
Save.Text = ResourceManager.GetString( "Save" );
ForumPermission permission = GetCurrentPermission();
if ( permission != null )
{
LoadPermission( permission );
}
}
private Int32 GetIntFromQueryString( String key )
{
String value = HttpContext.Current.Request[ key ];
if ( value == null )
{
return -1;
}
Double parsedValue;
if ( Double.TryParse( value, System.Globalization.NumberStyles.Integer, null, out parsedValue ) )
{
return Convert.ToInt32( parsedValue );
}
return -1;
}
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( ForumPermission permission )
{
Forum forum = Forums.GetForum( permission.SectionID );
if( forum != null )
{
ForumID.Text = forum.Name + ": " + permission.SectionID.ToString();
ForumID.NavigateUrl = Globals.GetSiteUrls().AdminForumEdit( permission.SectionID );
}
Role role = Roles.GetRole( permission.RoleID, false );
RoleID.Text = role.Name + ": " + permission.RoleID.ToString();
RoleID.NavigateUrl = Globals.GetSiteUrls().AdminRoleEdit( permission.RoleID );
View.SelectedBooleanValue = permission.View;
Read.SelectedBooleanValue = permission.Read;
Post.SelectedBooleanValue = permission.Post;
Reply.SelectedBooleanValue = permission.Reply;
Edit.SelectedBooleanValue = permission.Edit;
Delete.SelectedBooleanValue = permission.Delete;
Sticky.SelectedBooleanValue = permission.Sticky;
Announce.SelectedBooleanValue = permission.Announcement;
CreatePoll.SelectedBooleanValue = permission.CreatePoll;
Vote.SelectedBooleanValue = permission.Vote;
Moderate.SelectedBooleanValue = permission.Moderate;
Attachment.SelectedBooleanValue = permission.Attachment;
EditOthers.SelectedBooleanValue = permission.EditOthers;
Admin.SelectedBooleanValue = permission.Administer;
}
protected virtual void SavePermission( ForumPermission 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.Read;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Read.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.Sticky;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Sticky.SelectedValue ));
mask = Permission.Announcement;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Announce.SelectedValue ));
mask = Permission.CreatePoll;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), CreatePoll.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 ));
mask = Permission.Attachment;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Attachment.SelectedValue ));
mask = Permission.EditOthers;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), EditOthers.SelectedValue ));
mask = Permission.Administer;
permission.SetBit( mask, (AccessControlEntry)Enum.Parse( typeof(AccessControlEntry), Admin.SelectedValue ));
permission.ApplicationType = ApplicationType.Forum;
Permissions.UpdatePermission( permission );
if(permission.SectionID == -1)
Context.Response.Redirect(Globals.GetSiteUrls().AdminDefaultForumPermissions);
else
Context.Response.Redirect(Globals.GetSiteUrls().AdminForumPermissions);
}
private void Save_Click(object sender, EventArgs e)
{
ForumPermission permission = GetCurrentPermission();
SavePermission( permission );
}
private ForumPermission GetCurrentPermission()
{
ForumPermission fp = null;
Guid roleID = this.GetGuidFromQueryString( "RoleID" );
int forumID = CSContext.Current.ForumID;
fp = ForumPermissions.GetForumPermission( forumID, roleID );
if( fp == null ) {
fp = new ForumPermission();
fp.SettingsID = CSContext.Current.SiteSettings.SettingsID;
fp.RoleID = roleID;
fp.SectionID = forumID;
fp.ApplicationType = ApplicationType.Forum;
}
return fp;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -