Moved user create and edit to it's own pages. removed userscontroller.

pull/179/head
Halil İbrahim Kalkan 8 years ago
parent 02dec7af51
commit 0bed7db506

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27004.2005
VisualStudioVersion = 15.0.27130.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}"
EndProject
@ -154,9 +154,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Account.Applicatio
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Account.Application.Contracts", "src\Volo.Abp.Account.Application.Contracts\Volo.Abp.Account.Application.Contracts.csproj", "{3E62ED84-8792-4DA6-9B0A-AADEA183C2B3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.VirtualFileSystem", "src\Volo.Abp.VirtualFileSystem\Volo.Abp.VirtualFileSystem.csproj", "{6E6A7554-3488-45AB-BC0E-9BDE1F19789D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.VirtualFileSystem", "src\Volo.Abp.VirtualFileSystem\Volo.Abp.VirtualFileSystem.csproj", "{6E6A7554-3488-45AB-BC0E-9BDE1F19789D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.VirtualFileSystem.Tests", "test\Volo.Abp.VirtualFileSystem.Tests\Volo.Abp.VirtualFileSystem.Tests.csproj", "{F79B6D80-C79B-4C13-9221-CA2345983743}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.VirtualFileSystem.Tests", "test\Volo.Abp.VirtualFileSystem.Tests\Volo.Abp.VirtualFileSystem.Tests.csproj", "{F79B6D80-C79B-4C13-9221-CA2345983743}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

@ -1,62 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Identity.Web.Areas.Identity.Models;
namespace Volo.Abp.Identity.Web.Areas.Identity.Controllers
{
//[Area("Identity")]
//[Authorize]
//public class UsersController : AbpController
//{
// private readonly IIdentityUserAppService _identityUserAppService;
// private readonly IIdentityRoleAppService _identityRoleAppService;
// public UsersController(IIdentityUserAppService identityUserAppService, IIdentityRoleAppService identityRoleAppService)
// {
// _identityUserAppService = identityUserAppService;
// _identityRoleAppService = identityRoleAppService;
// }
// public async Task<PartialViewResult> Update(Guid id)
// {
// var user = await _identityUserAppService.GetAsync(id);
// await _identityRoleAppService.GetAllListAsync();
// var model = await CreateViewModel(user);
// return PartialView("_Update", model);
// }
// private async Task<CreateOrUpdateUserViewModel> CreateViewModel(IdentityUserDto user)
// {
// var allRoles = await _identityRoleAppService.GetAllListAsync();
// var model = new CreateOrUpdateUserViewModel
// {
// User = user ?? new IdentityUserDto(),
// Roles = ObjectMapper.Map<List<IdentityRoleDto>, IdentityUserRoleDto[]>(allRoles)
// };
// var userRoles = new List<IdentityRoleDto>();
// if (user != null)
// {
// userRoles = (await _identityUserAppService.GetRolesAsync(user.Id)).Items.ToList();
// }
// foreach (var role in model.Roles)
// {
// if (userRoles.Select(x=>x.Name).Contains(role.Name))
// {
// role.IsAssigned = true;
// }
// }
// return model;
// }
//}
}

@ -1,8 +0,0 @@
namespace Volo.Abp.Identity.Web.Areas.Identity.Models
{
public class CreateOrUpdateUserViewModel
{
public IdentityUserDto User { get; set; }
public IdentityUserRoleDto[] Roles { get; set; }
}
}

@ -1,66 +0,0 @@
@using Microsoft.Extensions.Localization
@using Volo.Abp.Identity.Web.Areas.Identity.Localization.Resource
@model Volo.Abp.Identity.Web.Areas.Identity.Models.CreateOrUpdateUserViewModel
@inject IStringLocalizer<IdentityResource> Localizer
<div class="modal-header">
<h5 class="modal-title" id="userModalLabel">@Localizer["CreateUser"]</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form id="createUserForm">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#userInformations" role="tab">@Localizer["CreateUser"]</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#roles" role="tab">@Localizer["Roles"]</a>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content pt-3">
<div class="tab-pane active" id="userInformations" role="tabpanel">
<div class="form-group">
<label for="userName">@Localizer["UserName"]</label>
<input type="text" class="form-control" id="userName" name="UserName" placeholder="User name">
</div>
<div class="form-group">
<label for="password">@Localizer["Password"]</label>
<input type="password" class="form-control" id="password" name="Password" placeholder="Password">
</div>
<div class="form-group">
<label for="email">@Localizer["EmailAddress"]</label>
<input type="email" class="form-control" id="email" name="Email" placeholder="Enter email">
</div>
<div class="form-group">
<label for="phoneNumber">@Localizer["PhoneNumber"]</label>
<input type="tel" class="form-control" id="phoneNumber" name="PhoneNumber" placeholder="Phone number">
</div>
</div>
<div class="tab-pane" id="roles" role="tabpanel">
<div class="user-role-checkbox-list">
@foreach (var role in Model.Roles)
{
<div class="form-check">
<label class="form-check-label">
<input id="CreateUser_@(role.Name)" class="form-check-input" type="checkbox" name="@(role.Name)" value="true" @Html.Raw(role.IsAssigned ? "checked=\"checked\"" : "")>
@role.Name
</label>
</div>
}
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">@Localizer["Close"]</button>
<button type="button" class="btn btn-primary" id="btnCreateUserSave">@Localizer["Save"]</button>
</div>

@ -1,8 +1,12 @@
@using Microsoft.Extensions.Localization
@page
@using Microsoft.Extensions.Localization
@using Volo.Abp.Identity.Web.Areas.Identity.Localization.Resource
@using Volo.Abp.Identity.Web.Pages.Identity.Users
@model CreateModalModel
@inject IStringLocalizer<IdentityResource> Localizer
@{
Layout = null;
}
<div class="modal-header">
<h5 class="modal-title" id="userModalLabel">@Localizer["CreateUser"]</h5>

@ -1,30 +1,24 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.AspNetCore.Mvc.RazorPages;
using Volo.Abp.Threading;
namespace Volo.Abp.Identity.Web.Pages.Identity.Users
{
public class CreateModalModel : AbpPageModel
{
public IdentityUserDto User { get; set; }
public IdentityUserRoleDto[] Roles { get; set; }
private readonly IIdentityUserAppService _identityUserAppService;
private readonly IIdentityRoleAppService _identityRoleAppService;
public CreateModalModel(IIdentityUserAppService identityUserAppService, IIdentityRoleAppService identityRoleAppService)
public CreateModalModel(IIdentityRoleAppService identityRoleAppService)
{
_identityUserAppService = identityUserAppService;
_identityRoleAppService = identityRoleAppService;
}
public void OnGet()
public async Task OnGetAsync()
{
User = new IdentityUserDto();
Roles = ObjectMapper.Map<List<IdentityRoleDto>, IdentityUserRoleDto[]>(
AsyncHelper.RunSync(() => _identityRoleAppService.GetAllListAsync())
await _identityRoleAppService.GetAllListAsync()
);
}
}

@ -1,7 +1,12 @@
@using Microsoft.Extensions.Localization
@page
@using Microsoft.Extensions.Localization
@using Volo.Abp.Identity.Web.Areas.Identity.Localization.Resource
@model Volo.Abp.Identity.Web.Areas.Identity.Models.CreateOrUpdateUserViewModel
@model Volo.Abp.Identity.Web.Pages.Identity.Users.EditModalModel
@inject IStringLocalizer<IdentityResource> Localizer
@{
Layout = null;
}
<div class="modal-header">
<h5 class="modal-title" id="userModalLabel">@Localizer["UpdateUser"]</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
@ -25,19 +30,19 @@
<div class="tab-pane active" id="userInformations" role="tabpanel">
<input type="hidden" name="Id" value="@Model.User.Id" />
<input type="hidden" name="Id" value="@Model.EditingUser.Id" />
<div class="form-group">
<label for="userName">@Localizer["UserName"]</label>
<input type="text" class="form-control" id="userName" name="UserName" placeholder="User name" value="@Model.User.UserName">
<input type="text" class="form-control" id="userName" name="UserName" placeholder="User name" value="@Model.EditingUser.UserName">
</div>
<div class="form-group">
<label for="email">@Localizer["EmailAddress"]</label>
<input type="email" class="form-control" id="email" name="Email" placeholder="Enter email" value="@Model.User.Email">
<input type="email" class="form-control" id="email" name="Email" placeholder="Enter email" value="@Model.EditingUser.Email">
</div>
<div class="form-group">
<label for="phoneNumber">@Localizer["PhoneNumber"]</label>
<input type="tel" class="form-control" id="phoneNumber" name="PhoneNumber" placeholder="Phone number" value="@Model.User.PhoneNumber">
<input type="tel" class="form-control" id="phoneNumber" name="PhoneNumber" placeholder="Phone number" value="@Model.EditingUser.PhoneNumber">
</div>
</div>

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.AspNetCore.Mvc.RazorPages;
namespace Volo.Abp.Identity.Web.Pages.Identity.Users
{
public class EditModalModel : AbpPageModel
{
public IdentityUserDto EditingUser { get; set; }
public IdentityUserRoleDto[] Roles { get; set; }
private readonly IIdentityUserAppService _identityUserAppService;
private readonly IIdentityRoleAppService _identityRoleAppService;
public EditModalModel(IIdentityUserAppService identityUserAppService, IIdentityRoleAppService identityRoleAppService)
{
_identityUserAppService = identityUserAppService;
_identityRoleAppService = identityRoleAppService;
}
public async Task OnGetAsync(Guid id)
{
EditingUser = await _identityUserAppService.GetAsync(id);
Roles = ObjectMapper.Map<List<IdentityRoleDto>, IdentityUserRoleDto[]>(await _identityRoleAppService.GetAllListAsync());
await SetAssignedRoles();
}
private async Task SetAssignedRoles()
{
var userRoleNames = (await _identityUserAppService.GetRolesAsync(EditingUser.Id)).Items.Select(r => r.Name).ToList();
foreach (var role in Roles)
{
if (userRoleNames.Contains(role.Name))
{
role.IsAssigned = true;
}
}
}
}
}

@ -19,6 +19,10 @@
<EmbeddedResource Include="Pages\**\*.cshtml" />
</ItemGroup>
<ItemGroup>
<Content Remove="Pages\Identity\Users\EditModal.cshtml" />
</ItemGroup>
<ItemGroup>
<None Remove="wwwroot\modules\identity\helpers\datatables_helper.js" />
<None Remove="wwwroot\modules\identity\helpers\jquery.js" />

@ -50,7 +50,7 @@
$('#createUpdateUserModal')
.modal('show')
.find('.modal-content')
.load(abp.appPath + 'Identity/Users/Update', { id: id });
.load(abp.appPath + 'Identity/Users/EditModal?id=' + id);
});
//Delete user command
@ -94,7 +94,7 @@
var user = $createUserForm.serializeFormToObject();
user.RoleNames = findAssignedRoleNames();
_identityUserAppService.create(user).done(function () {
_identityUserAppService.create(user).then(function () {
$('#createUpdateUserModal').modal('hide');
_dataTable.ajax.reload();
});
@ -105,7 +105,7 @@
var user = $updateUserForm.serializeFormToObject();
user.RoleNames = findAssignedRoleNames();
_identityUserAppService.update(user.Id, user).done(function () {
_identityUserAppService.update(user.Id, user).then(function () {
$('#createUpdateUserModal').modal('hide');
_dataTable.ajax.reload();
});

Loading…
Cancel
Save