Skip to content

Commit 5495f92

Browse files
committed
Authorize fix and displaying users
1 parent ad77057 commit 5495f92

30 files changed

+455
-39
lines changed

eFormAPI/eFormAPI/App_Start/AutofacConfig.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
using System.Web.Http;
33
using Autofac;
44
using Autofac.Integration.WebApi;
5+
using eFormAPI.Web.Infrastructure.Data;
6+
using eFormAPI.Web.Infrastructure.Identity;
57

68
namespace eFormAPI.Web
79
{
@@ -19,6 +21,7 @@ public static void ConfigureContainer()
1921
// OPTIONAL: Register the Autofac filter provider.
2022
builder.RegisterWebApiFilterProvider(config);
2123
// Set the dependency resolver to be Autofac.
24+
builder.RegisterType<BaseDbContext>().InstancePerRequest();
2225
Container = builder.Build();
2326
}
2427
}

eFormAPI/eFormAPI/Controllers/AccountController.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ public UserInfoViewModel GetUserInfo()
5353
{
5454
Email = user.Email,
5555
Id = user.Id,
56-
UserName = user.UserName
56+
FirstName = user.FirstName,
57+
LastName = user.LastName
5758
};
5859
}
5960

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Data.Entity;
4+
using System.Linq;
5+
using System.Net.Http;
6+
using System.Web.Http;
7+
using eFormAPI.Web.Infrastructure.Data;
8+
using eFormAPI.Web.Infrastructure.Identity;
9+
using eFormData;
10+
using eFromAPI.Common.API;
11+
using eFromAPI.Common.Models;
12+
using eFromAPI.Common.Models.Auth;
13+
using eFromAPI.Common.Models.User;
14+
using Microsoft.AspNet.Identity;
15+
using Microsoft.AspNet.Identity.Owin;
16+
using Microsoft.Owin.Security;
17+
18+
namespace eFormAPI.Web.Controllers
19+
{
20+
[Authorize]
21+
[RoutePrefix("api/admin")]
22+
public class AdminController : ApiController
23+
{
24+
private readonly BaseDbContext _dbContext;
25+
private EformUserManager _eformUserManager;
26+
private EformRoleManager _eformRoleManager;
27+
28+
public AdminController(BaseDbContext dbContext)
29+
{
30+
_dbContext = dbContext;
31+
}
32+
33+
public EformUserManager UserManager
34+
{
35+
get => _eformUserManager ?? Request.GetOwinContext().GetUserManager<EformUserManager>();
36+
private set => _eformUserManager = value;
37+
}
38+
39+
public EformRoleManager RoleManager
40+
{
41+
get => _eformRoleManager ?? Request.GetOwinContext().GetUserManager<EformRoleManager>();
42+
private set => _eformRoleManager = value;
43+
}
44+
45+
[HttpGet]
46+
[Route("user/{userId}")]
47+
public OperationDataResult<UserRegisterModel> GetUser(int userId)
48+
{
49+
try
50+
{
51+
var user = _dbContext.Users.Include(x => x.Roles).FirstOrDefault(x => x.Id == userId);
52+
53+
54+
var model = new UserRegisterModel
55+
{
56+
Email = user?.Email,
57+
Id = userId,
58+
FirstName = user.FirstName,
59+
LastName = user.LastName
60+
};
61+
62+
// var userRoles = user.Roles.FirstOrDefault();
63+
//
64+
// if (userRoles != null)
65+
// {
66+
// model.Role = _eformRoleManager.FindById(userRoles.RoleId).Name;
67+
// }
68+
69+
return new OperationDataResult<UserRegisterModel>(true, model);
70+
71+
}
72+
catch (Exception exception)
73+
{
74+
return new OperationDataResult<UserRegisterModel>(false, "Error when obtaining users");
75+
}
76+
}
77+
78+
[HttpPost]
79+
[Route("get-users")]
80+
public OperationDataResult<List<UserInfoViewModel>> GetAllUsers(PaginationModel paginationModel)
81+
{
82+
try
83+
{
84+
var userList = _dbContext.Users.Include(x => x.Roles).ToList();
85+
86+
var model = userList.Select(user => new UserInfoViewModel
87+
{
88+
FirstName = user.FirstName,
89+
LastName = user.LastName,
90+
Email = user.Email,
91+
Id = user.Id
92+
})
93+
.ToList();
94+
95+
return new OperationDataResult<List<UserInfoViewModel>>(true, model);
96+
}
97+
catch (Exception exception)
98+
{
99+
return new OperationDataResult<List<UserInfoViewModel>>(false, "Error when obtaining users");
100+
}
101+
}
102+
103+
[HttpPost]
104+
[Route("update-user")]
105+
public OperationResult UpdateUser(UserRegisterModel userRegisterModel)
106+
{
107+
try
108+
{
109+
var user = _dbContext.Users.Include(x => x.Roles).FirstOrDefault(x => x.Id == userRegisterModel.Id);
110+
111+
if (user == null) throw new Exception();
112+
113+
114+
if (userRegisterModel.Password.Equals(userRegisterModel.PasswordConfimation))
115+
{
116+
user.Email = userRegisterModel.Email;
117+
user.UserName = userRegisterModel.UserName;
118+
user.FirstName = userRegisterModel.FirstName;
119+
user.LastName = userRegisterModel.LastName;
120+
user.PasswordHash = new PasswordHasher().HashPassword(userRegisterModel.Password);
121+
}
122+
123+
_dbContext.Entry(user).State = EntityState.Modified;
124+
_dbContext.SaveChanges();
125+
126+
return new OperationResult (true, $"User {userRegisterModel.Id} was updated");
127+
}
128+
catch (Exception exception)
129+
{
130+
return new OperationResult(false, "Error when updating user");
131+
}
132+
}
133+
134+
[HttpPost]
135+
[Route("delete-user/{userId}")]
136+
public OperationResult DeleteUser(int userId)
137+
{
138+
try
139+
{
140+
var user = _dbContext.Users.Include(x => x.Roles).FirstOrDefault(x => x.Id == userId);
141+
142+
if (user == null) throw new Exception();
143+
144+
_dbContext.Entry(user).State = EntityState.Deleted;
145+
146+
return new OperationResult(true, $"User {userId} was deleted");
147+
}
148+
catch (Exception exception)
149+
{
150+
return new OperationResult(false, "Error while deleting user");
151+
}
152+
}
153+
}
154+
}

eFormAPI/eFormAPI/Controllers/CasesController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
namespace eFormAPI.Web.Controllers
1111
{
12+
[Authorize]
1213
public class CasesController : ApiController
1314
{
1415
private readonly EFormCoreHelper _coreHelper = new EFormCoreHelper();

eFormAPI/eFormAPI/Controllers/EntitySearchController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
namespace eFormAPI.Web.Controllers
1010
{
11+
[Authorize]
1112
public class EntitySearchController : ApiController
1213
{
1314
private readonly EFormCoreHelper _coreHelper = new EFormCoreHelper();

eFormAPI/eFormAPI/Controllers/SettingsController.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ public OperationResult ConnectionString(SettingsModel settingsModel)
5656
{
5757
if (File.Exists(inputPath))
5858
{
59-
File.Delete(inputPath);
60-
var fileStream = File.Create(inputPath);
61-
fileStream.Dispose();
62-
}
63-
else
64-
{
65-
var fileStream = File.Create(inputPath);
66-
fileStream.Dispose();
59+
//File.Delete(inputPath);
60+
//var fileStream = File.Create(inputPath);
61+
//fileStream.Dispose();
62+
return new OperationResult(false, "Connection string already exist");
6763
}
64+
65+
var fileStream = File.Create(inputPath);
66+
fileStream.Dispose();
67+
6868
File.WriteAllText(inputPath, sdkConnectionString);
6969
}
7070
catch (Exception exception)

eFormAPI/eFormAPI/Controllers/SimpleSitesController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
namespace eFormAPI.Web.Controllers
1111
{
12+
[Authorize]
1213
public class SimpleSitesController : ApiController
1314
{
1415
private readonly EFormCoreHelper _coreHelper = new EFormCoreHelper();

eFormAPI/eFormAPI/Controllers/SitesController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
namespace eFormAPI.Web.Controllers
1212
{
13+
[Authorize]
1314
public class SitesController : ApiController
1415
{
1516
private readonly EFormCoreHelper _coreHelper = new EFormCoreHelper();

eFormAPI/eFormAPI/Controllers/TemplatesController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
namespace eFormAPI.Web.Controllers
1717
{
18+
[Authorize]
1819
public class TemplatesController : ApiController
1920
{
2021
private readonly EFormCoreHelper _coreHelper = new EFormCoreHelper();

eFormAPI/eFormAPI/Controllers/UnitsController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
namespace eFormAPI.Web.Controllers
99
{
10+
[Authorize]
1011
public class UnitsController : ApiController
1112
{
1213
private readonly EFormCoreHelper _coreHelper = new EFormCoreHelper();

0 commit comments

Comments
 (0)