public async Task <bool> HasPrivateMessagePermissions(int userId) { var usr = new AuthenticatedUserExpanded(await GetAuthenticatedUserById(userId)); usr.AllPermissions = await GetPermissions(userId); return(usr.HasPrivateMessagePermissions); }
public _ForumDisplayPartialModel(int forumId, HashSet <ForumTree> tree, string dateFormat, bool showTitle, AuthenticatedUserExpanded authenticatedUser, bool showLastSeparator, string language) { DateFormat = dateFormat; ShowTitle = showTitle; AuthenticatedUser = authenticatedUser; Tree = tree; Categories = GetChildrenForums(forumId).Where(f => f.ForumType == ForumType.Category); SubForums = GetChildrenForums(forumId).Where(f => f.ForumType == ForumType.SubForum); ShowLastSeparator = showLastSeparator; Language = language; }
public _TopicDisplayPartialModel(AuthenticatedUserExpanded currentUser, string language, List <TopicDto> topics) : this( currentUser, language, new List <TopicGroup> { new TopicGroup { TopicType = Utilities.TopicType.Normal, Topics = topics } }) { }
public async Task <(string Message, bool?IsSuccess)> SendPrivateMessage(int senderId, string senderName, int receiverId, string subject, string text, PageContext pageContext, HttpContext httpContext) { var lang = GetLanguage(); try { var sender = new AuthenticatedUserExpanded(await GetAuthenticatedUserById(senderId)) { AllPermissions = await GetPermissions(senderId), }; if (!sender.HasPrivateMessagePermissions) { return(LanguageProvider.Errors[lang, "SENDER_CANT_SEND_PMS"], false); } var receiver = new AuthenticatedUserExpanded(await GetAuthenticatedUserById(receiverId)) { AllPermissions = await GetPermissions(receiverId), Foes = await GetFoes(receiverId) }; if (!receiver.HasPrivateMessages) { return(LanguageProvider.Errors[lang, "RECEIVER_CANT_RECEIVE_PMS"], false); } if (receiver.Foes?.Contains(senderId) ?? false) { return(LanguageProvider.Errors[lang, "ON_RECEIVERS_FOE_LIST"], false); } var connection = _context.GetDbConnection(); await connection.ExecuteAsync( @"INSERT INTO phpbb_privmsgs (author_id, to_address, bcc_address, message_subject, message_text, message_time) VALUES (@senderId, @to, '', @subject, @text, @time); SELECT LAST_INSERT_ID() INTO @inserted_id; INSERT INTO phpbb_privmsgs_to (author_id, msg_id, user_id, folder_id, pm_unread) VALUES (@senderId, @inserted_id, @receiverId, 0, 1); INSERT INTO phpbb_privmsgs_to (author_id, msg_id, user_id, folder_id, pm_unread) VALUES (@senderId, @inserted_id, @senderId, -1, 0); ", new { senderId, receiverId, to = $"u_{receiverId}", subject, text, time = DateTime.UtcNow.ToUnixTimestamp() } ); var emailSubject = string.Format(LanguageProvider.Email[receiver.Language !, "NEWPM_SUBJECT_FORMAT"], _config.GetValue <string>("ForumName"));
public async Task <int?> GetUserRole(AuthenticatedUserExpanded user) => (from up in user.AllPermissions ?? new HashSet <AuthenticatedUserExpanded.Permissions>() join a in await GetUserRolesLazy() on up.AuthRoleId equals a.RoleId select up.AuthRoleId as int?).FirstOrDefault();
public AuthenticatedUserExpanded?ClaimsPrincipalToAuthenticatedUser(ClaimsPrincipal claimsPrincipal) { var user = new AuthenticatedUserExpanded(); var found = false; foreach (var claim in claimsPrincipal?.Claims ?? Enumerable.Empty <Claim>()) { switch (claim.Type) { case nameof(AuthenticatedUserExpanded.UserId): user.UserId = int.Parse(claim.Value); found = true; break; case nameof(AuthenticatedUserExpanded.Username): user.Username = claim.Value; found = true; break; case nameof(AuthenticatedUserExpanded.UsernameClean): user.UsernameClean = claim.Value; found = true; break; case nameof(AuthenticatedUserExpanded.UserDateFormat): user.UserDateFormat = claim.Value; found = true; break; case nameof(AuthenticatedUserExpanded.UserColor): user.UserColor = claim.Value; found = true; break; case nameof(AuthenticatedUserExpanded.PostEditTime): user.PostEditTime = int.Parse(claim.Value); found = true; break; case nameof(AuthenticatedUserExpanded.UploadLimit): user.UploadLimit = int.Parse(claim.Value); found = true; break; case nameof(AuthenticatedUserExpanded.AllowPM): user.AllowPM = bool.TryParse(claim.Value, out var val) && val; found = true; break; case nameof(AuthenticatedUserExpanded.Style): user.Style = claim.Value; found = true; break; case nameof(AuthenticatedUserExpanded.JumpToUnread): user.JumpToUnread = bool.TryParse(claim.Value, out val) && val; found = true; break; case nameof(AuthenticatedUserExpanded.Language): user.Language = claim.Value; found = true; break; case nameof(AuthenticatedUserExpanded.EmailAddress): user.EmailAddress = claim.Value; found = true; break; } } return(found ? user : null); }
public _TopicDisplayPartialModel(AuthenticatedUserExpanded currentUser, string language, List <TopicGroup> topicGroups) { CurrentUser = currentUser; Language = language; TopicGroups = topicGroups; }