Unbenutze Felder entfernen und einen Password-Reset Link versenden.
This commit is contained in:
@@ -11,16 +11,14 @@
|
||||
<form @ref="form" class="@(validated ? " was-validated" : "needs-validation" )" novalidate>
|
||||
<div class="container">
|
||||
<div class="row mb-1 align-items-center">
|
||||
<Label Class="col-sm-3" For="name" HelpText="Enter a name" ResourceKey="Name">Name: </Label>
|
||||
<Label Class="col-sm-3" For="betreff" HelpText="Gib einen Betreff ein" ResourceKey="Betreff">Betreff: </Label>
|
||||
<div class="col-sm-9">
|
||||
<input id="name" class="form-control" @bind="@_name" required />
|
||||
<input id="betreff" class="form-control" @bind="@_betreff" required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1 align-items-center">
|
||||
<Label Class="col-sm-3" For="Body" HelpText="Enter a body" ResourceKey="Body">Body: </Label>
|
||||
<div class="col-sm-9">
|
||||
<RichTextEditor id="content" class="form-control" @Content="@_richText" @ref="RichTextEditorHtml" required />
|
||||
</div>
|
||||
<RichTextEditor id="content" class="form-control" Content="@_richText" @ref="@RichTextEditorHtml" required />
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="btn btn-success" @onclick="Save">@Localizer["Save"]</button>
|
||||
@@ -49,7 +47,7 @@
|
||||
private bool validated = false;
|
||||
|
||||
private int _id;
|
||||
private string _name;
|
||||
private string _betreff;
|
||||
private string _richText;
|
||||
private string _createdby;
|
||||
private DateTime _createdon;
|
||||
@@ -66,7 +64,7 @@
|
||||
AdminModules AdminModules = await AdminModulesService.GetAdminModulesAsync(_id, ModuleState.ModuleId);
|
||||
if (AdminModules != null)
|
||||
{
|
||||
_name = AdminModules.Name;
|
||||
_betreff = AdminModules.Name;
|
||||
_richText = AdminModules.Content;
|
||||
_createdby = AdminModules.CreatedBy;
|
||||
_createdon = AdminModules.CreatedOn;
|
||||
@@ -98,7 +96,7 @@
|
||||
{
|
||||
AdminModules AdminModules = new AdminModules();
|
||||
AdminModules.ModuleId = ModuleState.ModuleId;
|
||||
AdminModules.Name = _name;
|
||||
AdminModules.Name = _betreff;
|
||||
AdminModules.Content = content;
|
||||
AdminModules = await AdminModulesService.AddAdminModulesAsync(AdminModules);
|
||||
await logger.LogInformation("AdminModules Added {AdminModules}", AdminModules);
|
||||
@@ -106,7 +104,7 @@
|
||||
else
|
||||
{
|
||||
AdminModules AdminModules = await AdminModulesService.GetAdminModulesAsync(_id, ModuleState.ModuleId);
|
||||
AdminModules.Name = _name;
|
||||
AdminModules.Name = _betreff;
|
||||
AdminModules.Content = content;
|
||||
await AdminModulesService.UpdateAdminModulesAsync(AdminModules);
|
||||
await logger.LogInformation("AdminModules Updated {AdminModules}", AdminModules);
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace SZUAbsolventenverein.Module.AdminModules.Services
|
||||
|
||||
public async Task<Models.EmailFields> SendMassNotification(EmailFields EmailFields)
|
||||
{
|
||||
return await PutJsonAsync<Models.EmailFields>(CreateAuthorizationPolicyUrl($"{Apiurl}/{EmailFields.AdminModulesId}/send", EntityNames.Module, EmailFields.ModuleId), EmailFields);
|
||||
return await PutJsonAsync<Models.EmailFields>(CreateAuthorizationPolicyUrl($"{Apiurl}/send/{EmailFields.AdminModulesId}", EntityNames.Module, EmailFields.ModuleId), EmailFields);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,5 +148,23 @@ namespace SZUAbsolventenverein.Module.AdminModules.Controllers
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Post api/<controller>/roles/5
|
||||
[HttpPut("send/{id}")]
|
||||
[Authorize(Policy = PolicyNames.EditModule)]
|
||||
public async Task<EmailFields> PutSendMails(int id, [FromBody] EmailFields EmailFields)
|
||||
{
|
||||
if (ModelState.IsValid && EmailFields.AdminModulesId == id && IsAuthorizedEntityId(EntityNames.Module, EmailFields.ModuleId))
|
||||
{
|
||||
return await _AdminModulesService.SendMassNotification(EmailFields);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Put Attempt {AdminModules}", EmailFields);
|
||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
|
||||
EmailFields = null;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace SZUAbsolventenverein.Module.AdminModules.Services
|
||||
{
|
||||
if (_userPermissions.IsAuthorized(_accessor.HttpContext.User, _alias.SiteId, EntityNames.Module, ModuleId, PermissionNames.View))
|
||||
{
|
||||
List<Role> role = new List<Role>();
|
||||
List<Role> role = new();
|
||||
role.AddRange(_roleRepository.GetRoles(_alias.SiteId));
|
||||
return Task.FromResult(role);
|
||||
}
|
||||
@@ -153,14 +153,16 @@ namespace SZUAbsolventenverein.Module.AdminModules.Services
|
||||
int emailsSent = 0;
|
||||
|
||||
IEnumerable<int> userids = _userRoleRepository
|
||||
.GetUserRoles(_alias.SiteId)
|
||||
.Where(ur => ur.Role.SiteId == EmailFields.Role.RoleId)
|
||||
.GetUserRoles(EmailFields.Role.Name, _alias.SiteId)
|
||||
.Select(ur => ur.UserId)
|
||||
.Distinct()
|
||||
.AsEnumerable();
|
||||
|
||||
Console.WriteLine("Should send emails to: " + userids.Count());
|
||||
|
||||
foreach (int userid in userids)
|
||||
{
|
||||
Console.WriteLine("Sending email to: " + userid);
|
||||
emailsSent++;
|
||||
|
||||
User user = _userRepository.GetUser(userid);
|
||||
@@ -168,13 +170,13 @@ namespace SZUAbsolventenverein.Module.AdminModules.Services
|
||||
string body = template.Content;
|
||||
|
||||
// Fields bef<65>llen.
|
||||
string token = await _identityUserManager.GenerateEmailConfirmationTokenAsync(identityuser);
|
||||
string url = _alias.Protocol + _alias.Name + "/login?name=" + user.Username + "&token=" + WebUtility.UrlEncode(token);
|
||||
string token = await _identityUserManager.GeneratePasswordResetTokenAsync(identityuser);
|
||||
string url = _alias.Protocol + _alias.Name + "/reset?name=" + user.Username + "&token=" + WebUtility.UrlEncode(token);
|
||||
|
||||
body = body.Replace("[UserDisplayName]", user.DisplayName);
|
||||
body = body.Replace("[URL]", url);
|
||||
|
||||
Notification notification = new Notification(_alias.SiteId, user, template.Name, body, DateTime.Now.AddDays(emailsSent / 100));
|
||||
Notification notification = new Notification(_alias.SiteId, user, template.Name, body, DateTime.UtcNow.AddDays(emailsSent / 100));
|
||||
_notifications.AddNotification(notification);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user