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

📄 gallerypermissionadmin.cs

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