|
14 | 14 | using Umbraco.Cms.Core.Web; |
15 | 15 | using Umbraco.Cms.Infrastructure.Persistence; |
16 | 16 | using Umbraco.Cms.Web.Common.Models; |
| 17 | +using Umbraco.Cms.Web.Common.Filters; |
17 | 18 | using Umbraco.Cms.Web.Common.Security; |
18 | 19 | using Umbraco.Cms.Web.Website.Controllers; |
19 | 20 |
|
20 | 21 | namespace SGFDevs.Controllers; |
21 | 22 |
|
| 23 | +[AutoValidateAntiforgeryToken] |
22 | 24 | public class AccountController : SurfaceController |
23 | 25 | { |
24 | 26 | private IMemberSignInManager _memberSignInManager; |
@@ -84,12 +86,15 @@ public async Task<IActionResult> Login(LoginModel model) |
84 | 86 | return CurrentUmbracoPage(); |
85 | 87 | } |
86 | 88 |
|
| 89 | + [HttpPost] |
| 90 | + [UmbracoMemberAuthorize] |
87 | 91 | public async Task<IActionResult> Logout() |
88 | 92 | { |
89 | 93 | await _memberSignInManager.SignOutAsync(); |
90 | 94 | return Redirect("/"); |
91 | 95 | } |
92 | 96 |
|
| 97 | + [HttpPost] |
93 | 98 | public async Task<IActionResult> Register(RegisterModel model) |
94 | 99 | { |
95 | 100 | if (!ModelState.IsValid) |
@@ -132,9 +137,24 @@ public async Task<IActionResult> Register(RegisterModel model) |
132 | 137 | } |
133 | 138 |
|
134 | 139 | [HttpPost] |
135 | | - public IActionResult ProfileUpdate(MemberProfile profile) |
| 140 | + [UmbracoMemberAuthorize] |
| 141 | + public async Task<IActionResult> ProfileUpdate(MemberProfile profile) |
136 | 142 | { |
137 | | - var member = _memberService.GetByKey(profile.MemberKey); |
| 143 | + var currentMember = await _memberManager.GetCurrentMemberAsync(); |
| 144 | + if (currentMember == null) |
| 145 | + { |
| 146 | + return Forbid(); |
| 147 | + } |
| 148 | + |
| 149 | + var member = _memberService.GetByKey(currentMember.Key); |
| 150 | + var fullName = string.Join(" ", new[] { profile.FirstName, profile.LastName } |
| 151 | + .Where(value => !string.IsNullOrWhiteSpace(value))); |
| 152 | + |
| 153 | + if (!string.IsNullOrWhiteSpace(fullName)) |
| 154 | + { |
| 155 | + member.Name = fullName; |
| 156 | + } |
| 157 | + |
138 | 158 | member.Email = profile.Email; |
139 | 159 | member.SetValue("FirstName", profile.FirstName); |
140 | 160 | member.SetValue("LastName", profile.LastName); |
|
0 commit comments