/// <summary> /// 获取用户登录状态 /// </summary> /// <returns>若用户已登录则返回空,否则返回出错状态</returns> public static String GetJudgeServerLoginStatus() { if (!ConfigurationManager.EnableJudgerInterface) { return("disabled"); } if (!UserManager.IsUserLogined) { return("unlogin"); } if (UserManager.CurrentUser.Permission != PermissionType.HttpJudge) { return("no privilege"); } try { JudgeOnlineStatus.SetJudgeStatus(UserManager.CurrentUserName); } catch { } return(String.Empty); }
/// <summary> /// 尝试评测机登录 /// </summary> /// <param name="serverID">评测机ID</param> /// <param name="secretKey">评测机密钥</param> /// <param name="userip">用户IP</param> /// <param name="error">错误信息</param> /// <returns>是否登录成功</returns> public static Boolean TryJudgeServerLogin(String serverID, String secretKey, String userip, out String error) { if (!ConfigurationManager.EnableJudgerInterface) { error = "Judger interface is disabled!"; return(false); } UserEntity user = null; error = UserManager.TryGetUserByUsernameAndPassword(serverID, secretKey, out user); if (!String.IsNullOrEmpty(error)) { return(false); } if (user.Permission != PermissionType.HttpJudge) { error = "You do not have httpjudge privilege!"; return(false); } try { UserManager.UpdateLoginInfomation(serverID, userip); UserCurrentStatus.SetCurrentUserStatus(user); JudgeOnlineStatus.SetJudgeStatus(serverID); } catch { } return(true); }
/// <summary> /// 当前评测机列表 /// </summary> /// <returns>当前评测机列表</returns> public static IMethodResult AdminGetJudgers() { if (!AdminManager.HasPermission(PermissionType.SuperAdministrator)) { throw new NoPermissionException(); } List <UserEntity> list = UserManager.InternalAdminGetJudgerList(); if (list != null && list.Count > 0) { for (Int32 i = 0; i < list.Count; i++) { list[i].LastOnline = JudgeOnlineStatus.GetJudgeLastTime(list[i].UserName); } } return(MethodResult.Success(list)); }