Backup/Discuz.Forum/Moderators.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Discuz.Common;
using Discuz.Data;
using Discuz.Entity;
using Discuz.Common.Generic;

namespace Discuz.Forum
{
	/// <summary>
	/// 版主操作类
	/// </summary>
	public class Moderators
	{
		/// <summary>
		/// 获得所有版主信息
		/// </summary>
		/// <returns>所有版主信息</returns>
		public static List<ModeratorInfo> GetModeratorList()
		{
			Discuz.Cache.DNTCache cache = Discuz.Cache.DNTCache.GetCacheService();
            List<ModeratorInfo> morderatorList = cache.RetrieveObject("/Forum/ModeratorList") as List<ModeratorInfo>;
            if (morderatorList == null)
			{
                morderatorList = Discuz.Data.Moderators.GetModeratorList();
                cache.AddObject("/Forum/ModeratorList", morderatorList);
			}
            return morderatorList;
		}

		/// <summary>
		/// 判断指定用户是否是指定版块的版主
		/// </summary>
        /// <param name="adminId">用户级别(1为管理员,2为超版,3为版主,0为普通用户)</param>
		/// <param name="uid">用户id</param>
		/// <param name="fid">论坛id</param>
		/// <returns>如果是版主返回true, 如果不是则返回false</returns>
		public static bool IsModer(int adminId, int uid, int fid)
		{
			if (adminId == 0)
				return false;

            // 用户为管理员或总版主直接返回真
			if (adminId == 1 || adminId == 2)
				return true;

            if (adminId == 3)
			{
				// 如果是管理员或总版主, 或者是普通版主且在该版块有版主权限
				foreach(ModeratorInfo moderInfo in GetModeratorList())
				{
					// 论坛版主表中存在,则返回真
                    if (moderInfo.Uid == uid && moderInfo.Fid == fid)
						return true;
				}
			}
			return false;
		}

        /// <summary>
        /// 通过版主用户名获取其管理的版块列表
        /// </summary>
后面还有 14 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。