public virtual ActionResult SendCovenantWideMessage(string Message) { if (Message.Length > 1000) { TempData["Error"] = "Your message is too long. There is a 1000 character limit."; return(RedirectToAction(MVC.Covenant.MyCovenant())); } var me = PlayerProcedures.GetPlayerFromMembership(User.Identity.GetUserId()); // assert that player is in a covenant if (me.Covenant == null || me.Covenant <= 0) { TempData["Error"] = "You are not in a covenant and cannot send out mass messages to your members."; return(RedirectToAction(MVC.Covenant.MyCovenant())); } // assert that the player is a covenant leader var myCov = CovenantProcedures.GetDbCovenant((int)me.Covenant); if (myCov.LeaderId != me.Id) { TempData["Error"] = "You are not the leader of your covenant."; TempData["SubError"] = "Only covenant leaders can send out mass messages."; return(RedirectToAction(MVC.Covenant.MyCovenant())); } MessageProcedures.SendCovenantWideMessage(me, Message); TempData["Result"] = "Message sent out!"; return(RedirectToAction(MVC.Covenant.MyCovenant())); }
public virtual ActionResult CovenantWideMessage() { var me = PlayerProcedures.GetPlayerFromMembership(User.Identity.GetUserId()); // assert that player is in a covenant if (me.Covenant == null || me.Covenant <= 0) { TempData["Error"] = "You are not in a covenant and cannot send out mass messages to your members."; return(RedirectToAction(MVC.Covenant.MyCovenant())); } // assert that the player is a covenant leader var myCov = CovenantProcedures.GetDbCovenant((int)me.Covenant); if (myCov.LeaderId != me.Id) { TempData["Error"] = "You are not the leader of your covenant."; TempData["SubError"] = "Only covenant leaders can send out mass messages."; return(RedirectToAction(MVC.Covenant.MyCovenant())); } return(View(MVC.Messages.Views.CovenantWideMessage)); }
private bool UserCanSeeRoom(ref string roomName) { if (roomName.StartsWith("coven_")) { var userId = User.Identity.GetUserId(); var me = PlayerProcedures.GetPlayerFromMembership(userId); if (User.IsInRole(PvPStatics.Permissions_Moderator) || User.IsInRole(PvPStatics.Permissions_Admin)) { // Always grant access for moderators if (me.Covenant == null || me.Covenant <= 0 || roomName != $"coven_{me.Covenant}") { // User is not a member of this coven TempData["Result"] = "You are in this covenant chat room for moderation purposes."; } } else if (me.Covenant == null || me.Covenant <= 0) { TempData["Error"] = "You are not in a covenant and cannot access this covenant chat room."; return(false); } else if (roomName != $"coven_{me.Covenant}") { TempData["Error"] = "You are not in this covenant and cannot access its chat room."; return(false); } // Player is in coven or a moderator var covenId = roomName.Substring(6).Parse <int>(); var coven = CovenantProcedures.GetDbCovenant(covenId); if (coven != null) { roomName = $"{coven.Name} (covenant)"; } } else if (roomName.StartsWith("owner_")) { var userId = User.Identity.GetUserId(); var me = PlayerProcedures.GetPlayerFromMembership(userId); if (roomName != $"owner_{me.Id}") { // Not the owner var item = DomainRegistry.Repository.FindSingle(new GetItemByFormerPlayer { PlayerId = me.Id }); if (item == null || item.Owner == null || roomName != $"owner_{item.Owner.Id}") { // Not owned by the player if (User.IsInRole(PvPStatics.Permissions_Moderator) || User.IsInRole(PvPStatics.Permissions_Admin)) { TempData["Result"] = "You are in this owner chat room for moderation purposes."; } else { TempData["Error"] = "You do not have access to this owner chat room."; return(false); } } } var ownerId = roomName.Substring(6).Parse <int>(); var owner = PlayerProcedures.GetPlayerFormViewModel(ownerId); if (owner != null && owner.Player != null) { roomName = $"{owner.Player.GetFullName()} (owner chat)"; } } return(true); }