using System;
using SiberTek.Xenta.Presentation;
using SiberTek.Xenta.Presentation.Resources;
using SiberTek.Xenta.Presentation.Utils;
using SiberTek.Xenta.Utils;
using SiberTek.Xenta.Web.Pages;
using SiberTek.Xenta.Web.Utils;
namespace SiberTek.Xenta.Web.Admin.Pages
{
public abstract class AdminPageBase : PageBase
{
#region Properties
public virtual bool IsAccessAllowed
{
get
{
return UserContext.Current.HasPermission(Global.APP_ACCESS_CODE);
}
}
public virtual string PageTitle
{
get
{
return StringManager.GetString("Admin.{0}.Title", GetType().Name);
}
}
public override string Theme
{
get
{
string value = AppHelper.GetAppSetting("Admin.Theme");
if(String.IsNullOrEmpty(value))
{
value = base.Theme;
}
return value;
}
set
{
base.Theme = value;
}
}
#endregion
#region Methods
protected override void InitializeCulture()
{
if(!IsPostBack)
{
Culture = UICulture = LocalizationHelper.GetLanguageName(UserContext.Current.LanguageID);
}
base.InitializeCulture();
}
#endregion
#region Handlers
protected override void OnInit(EventArgs e)
{
if(!UserContext.Current.IsAuthenticated)
{
Response.Redirect(UrlHelper.FormatUrl("home", "login.aspx?return={0}", StringHelper.EncodeUrl(UrlHelper.GetUrl("admin"))));
}
if(!IsAccessAllowed)
{
Response.Redirect(UrlHelper.GetUrl("home", "forbidden.aspx"));
}
base.OnInit(e);
}
protected override void OnPreRender(EventArgs e)
{
Title = String.Format(StringManager.GetString("Admin.AdminPageBase.Title"), PageTitle);
base.OnPreRender(e);
}
#endregion
}
}