/// <summary> /// 权限更新 /// </summary> /// <param name="broker"></param> /// <param name="entity"></param> /// <returns></returns> public static int FiltededUpdate(this IPersistBroker broker, BaseEntity entity) { var sysEntity = EntityCache.GetEntity(entity.EntityName); AssertUtil.CheckBoolean <InvalidCredentialException>(!AuthAccess.CheckWriteAccess(sysEntity.Id), $"用户没有实体[{sysEntity.name}]的更新权限", "451FC4BA-46B2-4838-B8D0-69617DFCAF39"); return(broker.Update(entity)); }
private void CreateOrUpdateMenu(IPersistBroker broker, classification data) { var menu = broker.Retrieve <sys_menu>("SELECT * FROM sys_menu WHERE router = @code", new Dictionary <string, object>() { { "@code", $"blogs/{data.code}" } }); if (menu != null) { menu.menu_Index = data.index; menu.name = data.name; broker.Update(menu); } else { menu = new sys_menu() { Id = Guid.NewGuid().ToString(), name = data.name, parentid = "8201EFED-76E2-4CD1-A522-4803D52D4D92", parentIdName = "博客管理", router = $"blogs/{data.code}", menu_Index = data.index, stateCode = 1, stateCodeName = "启用" }; broker.Create(menu); } }
/// <summary> /// 登录 /// </summary> /// <param name="model"></param> /// <returns></returns> public LoginResponse Login(LoginRequest model) { var code = model.code; var pwd = model.password; var publicKey = model.publicKey; UserIdentityUtil.SetCurrentUser(UserIdentityUtil.GetSystem()); var authUser = Broker.Retrieve <auth_user>("SELECT * FROM auth_user WHERE lower(code) = lower(@code)", new Dictionary <string, object>() { { "@code", code } }); if (authUser == null) { return(new LoginResponse() { result = false, message = "用户名或密码错误" }); } if (authUser.is_lock) { return(new LoginResponse() { result = false, message = "用户已被锁定,请联系管理员" }); } if (string.IsNullOrEmpty(pwd) || string.IsNullOrEmpty(publicKey) || !string.Equals(authUser.password, RSAUtil.Decrypt(pwd, publicKey)) ) { var message = "用户名或密码错误"; if (!authUser.try_times.HasValue) { authUser.try_times = 1; } else { authUser.try_times += 1; if (authUser.try_times > 1) { message = $"用户名或密码已连续错误{authUser.try_times}次,超过五次账号锁定"; } } if (authUser.try_times >= 5) { authUser.is_lock = true; message = $"用户已被锁定,请联系管理员"; } Broker.Update(authUser); return(new LoginResponse() { result = false, message = message }); } if (authUser.try_times > 0) { authUser.try_times = 0; } authUser.last_login_time = DateTime.Now; Broker.Update(authUser); // 返回登录结果、用户信息、用户验证票据信息 var oUser = new LoginResponse { result = true, userName = code, token = JwtHelper.CreateToken(new JwtTokenModel() { Code = authUser.code, Name = authUser.name, Role = authUser.code, Uid = authUser.Id }), userId = authUser.user_infoid, message = "登录成功" }; return(oUser); }