/// <summary> /// 添加用户组信息 /// </summary> /// <param name="userGroupInfo"></param> /// <returns></returns> public static bool AddUserGroupInfo(UserGroupInfo userGroupInfo) { try { int Creditshigher = userGroupInfo.Creditshigher; int Creditslower = userGroupInfo.Creditslower; DataTable dt = Discuz.Data.UserGroups.GetUserGroupByCreditsHigherAndLower(Creditshigher, Creditslower); if (dt.Rows.Count > 0) { return(false); } if (userGroupInfo.Radminid == 0 && !SystemCheckCredits("add", ref Creditshigher, ref Creditslower, 0)) { return(false); } userGroupInfo.Creditshigher = Creditshigher; userGroupInfo.Creditslower = Creditslower; Data.UserGroups.CreateUserGroup(userGroupInfo); Data.OnlineUsers.AddOnlineList(userGroupInfo.Grouptitle); Caches.ReSetAdminGroupList(); Caches.ReSetUserGroupList(); return(true); } catch { return(false); } }
/// <summary> /// 更新用户组信息 /// </summary> /// <param name="userGroupInfo">用户组信息</param> /// <returns></returns> public static bool UpdateUserGroupInfo(UserGroupInfo userGroupInfo) { int Creditshigher = userGroupInfo.Creditshigher; int Creditslower = userGroupInfo.Creditslower; if ((userGroupInfo.Groupid >= 9) && (userGroupInfo.Radminid == 0)) { //当已存在的用户组积分上下限不是当前组的时候,则不允许编辑 DataTable dt = Discuz.Data.UserGroups.GetUserGroupByCreditsHigherAndLower(Creditshigher, Creditslower); if (dt.Rows.Count > 0 && userGroupInfo.Groupid.ToString() != dt.Rows[0][0].ToString()) { return(false); } if (!SystemCheckCredits("update", ref Creditshigher, ref Creditslower, userGroupInfo.Groupid)) { return(false); } } UserGroups.UpdateUserGroup(userGroupInfo); Discuz.Data.UserGroups.UpdateOnlineList(userGroupInfo); Caches.ReSetAdminGroupList(); Caches.ReSetUserGroupList(); return(true); }
/// <summary> /// 删除指定用户组 /// </summary> /// <param name="groupid"></param> /// <returns></returns> new public static bool DeleteUserGroupInfo(int groupid) { try { if (Discuz.Data.UserGroups.IsSystemOrTemplateUserGroup(groupid)) { //当为系统初始组或模板组时,则不允许删除 return(false); } //当为用户组时 if (groupid >= 9) { DataTable dt = UserGroups.GetUserGroupExceptGroupid(groupid); if (dt.Rows.Count > 1) { UserGroupInfo info = UserGroups.GetUserGroupInfo(groupid); if (info.Radminid == 0) { int creditshigher = info.Creditshigher; int creditslower = info.Creditslower; SystemCheckCredits("delete", ref creditshigher, ref creditslower, groupid); } } else { if (dt.Rows.Count == 1) { //当系统删除当前组后只有一个组存在时则直接设置唯一组下限,但不修改唯一组上限的值 Data.UserGroups.UpdateUserGroupLowerAndHigherToLimit(Utils.StrToInt(dt.Rows[0][0], 0)); } else { //系统中用户组只有一个时 opresult = "当前用户组为系统中唯一的用户组,因此系统无法删除"; return(false); } } } UserGroups.DeleteUserGroupInfo(groupid); AdminGroups.DeleteAdminGroupInfo(short.Parse(groupid.ToString())); Data.OnlineUsers.DeleteOnlineByUserGroup(groupid); Caches.ReSetAdminGroupList(); Caches.ReSetUserGroupList(); return(true); } catch { return(false); } }