Skip to content

Commit 59ff6d3

Browse files
authored
Merge pull request #66 from UpendoVentures/dev
Sync dev and main
2 parents b775c65 + 4a7d9a2 commit 59ff6d3

10 files changed

+275
-210
lines changed

Modules/UserManager/App_LocalResources/RolesManageController.resx

+6
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,13 @@
123123
<data name="Disabled.Text" xml:space="preserve">
124124
<value>Disabled</value>
125125
</data>
126+
<data name="GlobalRoles.Text" xml:space="preserve">
127+
<value>Global Roles</value>
128+
</data>
126129
<data name="Pending.Text" xml:space="preserve">
127130
<value>Pending</value>
128131
</data>
132+
<data name="RoleNameExists.Text" xml:space="preserve">
133+
<value>A role with that name already exists</value>
134+
</data>
129135
</root>

Modules/UserManager/Controllers/RolesManageController.cs

+28-2
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1818
*/
1919

2020
using DotNetNuke.Framework.JavaScriptLibraries;
21+
using DotNetNuke.Security.Roles;
2122
using DotNetNuke.Services.Localization;
2223
using DotNetNuke.Web.Mvc.Framework.ActionFilters;
2324
using DotNetNuke.Web.Mvc.Framework.Controllers;
24-
using System.Collections.Generic;
2525
using System.Web.Mvc;
2626
using Upendo.Modules.UserManager.Utility;
2727
using Upendo.Modules.UserManager.ViewModels;
@@ -32,6 +32,7 @@ namespace Upendo.Modules.UserManager.Controllers
3232
public class RolesManageController : DnnController
3333
{
3434
private readonly string ResourceFile = "~/DesktopModules/MVC/Upendo.Modules.UserManager/App_LocalResources/UserManageController.resx";
35+
private readonly string RolesResourceFile = "~/DesktopModules/MVC/Upendo.Modules.UserManager/App_LocalResources/RolesManageController.resx";
3536

3637
public RolesManageController()
3738
{
@@ -77,6 +78,18 @@ public ActionResult Create()
7778
[HttpPost]
7879
public ActionResult Create(RolesViewModel item)
7980
{
81+
// Check if the RoleName is already in use
82+
var portalId = ModuleContext.PortalId;
83+
var rol = RoleController.Instance.GetRoleByName(portalId, item.RoleName);
84+
if (rol != null)
85+
{
86+
ViewBag.RoleGroups = RolesRepository.GetRoleGroups(portalId);
87+
ViewBag.StatusList = RolesRepository.StatusList();
88+
ViewBag.ErrorMessage = Localization.GetString("RoleNameExists.Text", RolesResourceFile);
89+
return View(item);
90+
}
91+
92+
// If no validation issue, create the role
8093
RolesRepository.CreateRol(item);
8194
return RedirectToAction("Index");
8295
}
@@ -93,6 +106,19 @@ public ActionResult Edit(int itemId)
93106
[HttpPost]
94107
public ActionResult Edit(RolesViewModel item)
95108
{
109+
// Check if the name has changed and if the new name is already in use
110+
var portalId = ModuleContext.PortalId;
111+
var originalRole = RoleController.Instance.GetRoleById(portalId, item.RoleId);
112+
var existingRole = RoleController.Instance.GetRoleByName(portalId, item.RoleName);
113+
if (originalRole != null && originalRole.RoleName != item.RoleName && existingRole != null)
114+
{
115+
ViewBag.RoleGroups = RolesRepository.GetRoleGroups(portalId);
116+
ViewBag.StatusList = RolesRepository.StatusList();
117+
ViewBag.ErrorMessage = Localization.GetString("RoleNameExists.Text", RolesResourceFile);
118+
return View(item);
119+
}
120+
121+
// If no validation issue, proceed with editing the role
96122
RolesRepository.EditRol(item);
97123
return RedirectToAction("Index");
98124
}
@@ -111,4 +137,4 @@ public ActionResult Delete(int itemId)
111137
return RedirectToAction("Index");
112138
}
113139
}
114-
}
140+
}

Modules/UserManager/Properties/AssemblyInfo.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@
2929
// Build Number
3030
// Revision
3131
//
32-
[assembly: AssemblyVersion("01.00.00")]
33-
[assembly: AssemblyFileVersion("01.00.00")]
32+
[assembly: AssemblyVersion("01.00.01")]
33+
[assembly: AssemblyFileVersion("01.00.01")]

0 commit comments

Comments
 (0)