

namespace Stat.Security
{
    public interface ISecurity
    {
        /// <summary>
        /// 管理员登录
        /// </summary>
        /// <returns></returns>
        bool Login(Model.Users model);
        /// <summary>
        /// 校验 验证码
        /// </summary>
        /// <param name="name">验证码 键名</param>
        /// <param name="value">用户输入的值</param>
        /// <returns></returns>
        bool CheckCode(string name, string value);
        /// <summary>
        /// 获取用户可以操作的 站点 ID 列表
        /// </summary>
        /// <returns>1，2，3</returns>
        string GetUserWebsiteList();
        /// <summary>
        /// 是否 用户 可以操作该站点
        /// </summary>
        /// <param name="webID">站点ID</param>
        /// <returns></returns>
        bool IsOperateWebSite(int webID);
        /// <summary>
        /// 当前用户 是否已经登录
        /// </summary>
        /// <returns></returns>
        bool IsUserLogin();
        /// <summary>
        /// 当前管理员 是否已经登录
        /// </summary>
        /// <returns></returns>
        bool IsMasterLogin();
        /// <summary>
        /// 检查 当前用户 是否 是用户组
        /// </summary>
        /// <returns></returns>
        bool IsUser();
        /// <summary>
        /// 检查 当前用户 是否 是管理员组
        /// </summary>
        /// <returns></returns>
        bool IsMaster();
        /// <summary>
        /// 重新加载 当前用户 登录信息
        /// </summary>
        /// <returns></returns>
        void ReloadCurrentUser();
        /// <summary>
        /// 获取当前用户的 ID
        /// </summary>
        /// <returns></returns>
        int GetCurrentUserID();
        /// <summary>
        /// 获取当前 用户 登录名
        /// </summary>
        /// <returns></returns>
        string GetCurrentUserName();
        /// <summary>
        /// 退出登录
        /// </summary>
        void LogOut();
        /// <summary>
        /// 管理员权限列表集合
        /// </summary>
        /// <param name="admin_power"></param>
        /// <returns></returns>
        string GetMasterPowerList(string admin_power);
        /// <summary>
        /// 站点报表权限集合
        /// </summary>
        /// <param name="website_power"></param>
        /// <returns></returns>
        string GetWebsitePowerList(string website_power);
        /// <summary>
        /// 检查管理员是否拥有该权限
        /// </summary>
        /// <param name="pageName">页面（如：a.aspx）</param>
        /// <returns></returns>
        bool CheckMasterPower(string pageName);
        /// <summary>
        /// 检查报表是否公开
        /// </summary>
        /// <param name="webid">站点ID</param>
        /// <param name="pageName">页面（如：a.aspx）</param>
        /// <returns></returns>
        bool CheckReportPower(int webid, string pageName);
        void CheckReportPower(int webid);
    }
}