⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 forumpermissionadmin.cs

📁 本系统是在asp版《在线文件管理器》的基础上设计制作
💻 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 + -