Fixing bug #16531 - There is a 404 error when click "Remove" button on the "Edit Role" page(Build 2143

--HG--
branch : dev
This commit is contained in:
Andre Rodrigues
2010-10-14 17:18:21 -07:00
parent bc10445c0b
commit 87b174107e
3 changed files with 49 additions and 31 deletions

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Orchard.Core.Contents.Controllers;
using Orchard.Localization;
using Orchard.Roles.Models;
using Orchard.Roles.Services;
@@ -98,9 +99,9 @@ namespace Orchard.Roles.Controllers {
var role = _roleService.GetRole(id);
if (role == null) {
//TODO: Error message
throw new HttpException(404, "page with id " + id + " was not found");
return HttpNotFound();
}
var model = new RoleEditViewModel { Name = role.Name, Id = role.Id,
RoleCategoryPermissions = _roleService.GetInstalledPermissions(),
CurrentPermissions = _roleService.GetPermissionsForRole(id)};
@@ -117,7 +118,8 @@ namespace Orchard.Roles.Controllers {
}
[HttpPost, ActionName("Edit")]
public ActionResult EditPOST() {
[FormValueRequired("submit.Save")]
public ActionResult EditSavePOST(int id) {
if (!Services.Authorizer.Authorize(Permissions.ManageRoles, T("Not authorized to manage roles")))
return new HttpUnauthorizedResult();
@@ -125,7 +127,6 @@ namespace Orchard.Roles.Controllers {
try {
UpdateModel(viewModel);
// Save
if (!String.IsNullOrEmpty(HttpContext.Request.Form["submit.Save"])) {
List<string> rolePermissions = new List<string>();
foreach (string key in Request.Form.Keys) {
if (key.StartsWith("Checkbox.") && Request.Form[key] == "true") {
@@ -134,15 +135,30 @@ namespace Orchard.Roles.Controllers {
}
}
_roleService.UpdateRole(viewModel.Id, viewModel.Name, rolePermissions);
}
else if (!String.IsNullOrEmpty(HttpContext.Request.Form["submit.Delete"])) {
_roleService.DeleteRole(viewModel.Id);
}
return RedirectToAction("Edit", new { viewModel.Id });
Services.Notifier.Information(T("Your Role has been saved."));
return RedirectToAction("Edit", new { id });
}
catch (Exception exception) {
Services.Notifier.Error(T("Editing Role failed: {0}", exception.Message));
return RedirectToAction("Edit", viewModel.Id);
return RedirectToAction("Edit", id);
}
}
[HttpPost, ActionName("Edit")]
[FormValueRequired("submit.Delete")]
public ActionResult EditDeletePOST(int id) {
if (!Services.Authorizer.Authorize(Permissions.ManageRoles, T("Not authorized to manage roles")))
return new HttpUnauthorizedResult();
try {
_roleService.DeleteRole(id);
Services.Notifier.Information(T("Role was successfully deleted."));
return RedirectToAction("Index");
} catch (Exception exception) {
Services.Notifier.Error(T("Editing Role failed: {0}", exception.Message));
return RedirectToAction("Edit", id);
}
}
}

View File

@@ -103,6 +103,10 @@
<Project>{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}</Project>
<Name>Orchard.Framework</Name>
</ProjectReference>
<ProjectReference Include="..\..\Core\Orchard.Core.csproj">
<Project>{9916839C-39FC-4CEB-A5AF-89CA7E87119F}</Project>
<Name>Orchard.Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

View File

@@ -34,7 +34,5 @@
</tr>
}
</table>
</fieldset>
}