Skip to content

Commit 41dc25c

Browse files
admin: Delete Administrator
1 parent 061957f commit 41dc25c

File tree

6 files changed

+121
-1
lines changed

6 files changed

+121
-1
lines changed

src/main/java/org/woehlke/greenshop/admin/service/AdministratorService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,6 @@ public interface AdministratorService extends UserDetailsService {
1717
void update(Administrator thisAdministrator);
1818

1919
void create(Administrator thisAdministrator);
20+
21+
void delete(Administrator thisAdministrator);
2022
}

src/main/java/org/woehlke/greenshop/admin/service/AdministratorServiceImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ public void create(Administrator thisAdministrator) {
5151
thisAdministrator = administratorRepository.save(thisAdministrator);
5252
}
5353

54+
@Override
55+
@Transactional(readOnly=false,propagation=Propagation.REQUIRES_NEW)
56+
public void delete(Administrator thisAdministrator) {
57+
administratorRepository.delete(thisAdministrator);
58+
}
59+
5460
@Override
5561
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
5662
Administrator administrator = administratorRepository.findByUserName(username);

src/main/java/org/woehlke/greenshop/admin/web/configuration/AdministratorController.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,4 +113,34 @@ public String administratorInsertSave(
113113
return "redirect:/admin/administrators/"+administratorId;
114114
}
115115
}
116+
117+
@RequestMapping(value = "/admin/administrators/{administratorId}/delete", method = RequestMethod.GET)
118+
public String administratorDeleteForm(
119+
@PathVariable long administratorId, Model model){
120+
int menuCategory = AdminMenuCategory.CONFIGURATION.ordinal();
121+
model.addAttribute("menuCategory",menuCategory);
122+
Administrator thisAdministrator = administratorService.findAdministratorById(administratorId);
123+
model.addAttribute("thisAdministrator",thisAdministrator);
124+
List<Administrator> administrators = administratorService.findAllAdministrators();
125+
model.addAttribute("administrators",administrators);
126+
return "admin/configuration/administratorsDelete";
127+
}
128+
129+
@RequestMapping(value = "/admin/administrators/{administratorId}/delete", method = RequestMethod.POST)
130+
public String administratorDeleteSave(
131+
@PathVariable long administratorId,
132+
@Valid Administrator thisAdministrator, BindingResult result, Model model){
133+
int menuCategory = AdminMenuCategory.CONFIGURATION.ordinal();
134+
model.addAttribute("menuCategory",menuCategory);
135+
if(result.hasErrors()){
136+
model.addAttribute("thisAdministrator",thisAdministrator);
137+
List<Administrator> administrators = administratorService.findAllAdministrators();
138+
model.addAttribute("administrators",administrators);
139+
return "admin/configuration/administratorsDelete";
140+
} else {
141+
thisAdministrator.setId(administratorId);
142+
administratorService.delete(thisAdministrator);
143+
return "redirect:/admin/administrators";
144+
}
145+
}
116146
}

src/main/webapp/WEB-INF/jsp/admin/admin-tiles.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@
6363
<put-attribute name="bodyContent" value="/WEB-INF/jsp/admin/configuration/administratorsInsertForm.jsp" />
6464
</definition>
6565

66+
<definition name="admin/configuration/administratorsDelete" extends="backend">
67+
<put-attribute name="bodyContent" value="/WEB-INF/jsp/admin/configuration/administratorsDeleteForm.jsp" />
68+
</definition>
69+
6670

6771
<!-- currencies -->
6872

src/main/webapp/WEB-INF/jsp/admin/configuration/administrators.jsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
</table>
5858
<table border="0" width="100%" cellspacing="0" cellpadding="2">
5959
<tr>
60-
<td align="center" class="infoBoxContent"><span class="tdbLink"><a id="tdb2" href="<c:url value="/admin/administrators/${thisAdministrator.id}/edit"/>">Edit</a></span><script type="text/javascript">$("#tdb2").button({icons:{primary:"ui-icon-document"}}).addClass("ui-priority-secondary").parent().removeClass("tdbLink");</script><span class="tdbLink"><a id="tdb3" href="http://localhost/oscommerce2/admin/administrators.php?aID=2&action=delete">Delete</a></span><script type="text/javascript">$("#tdb3").button({icons:{primary:"ui-icon-trash"}}).addClass("ui-priority-secondary").parent().removeClass("tdbLink");</script></td>
60+
<td align="center" class="infoBoxContent"><span class="tdbLink"><a id="tdb2" href="<c:url value="/admin/administrators/${thisAdministrator.id}/edit"/>">Edit</a></span><script type="text/javascript">$("#tdb2").button({icons:{primary:"ui-icon-document"}}).addClass("ui-priority-secondary").parent().removeClass("tdbLink");</script><span class="tdbLink"><a id="tdb3" href="<c:url value="/admin/administrators/${thisAdministrator.id}/delete"/>">Delete</a></span><script type="text/javascript">$("#tdb3").button({icons:{primary:"ui-icon-trash"}}).addClass("ui-priority-secondary").parent().removeClass("tdbLink");</script></td>
6161
</tr>
6262
</table>
6363
</td>
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<%@ include file="/WEB-INF/layout/taglibs.jsp"%>
2+
3+
<table border="0" width="100%" cellspacing="0" cellpadding="2">
4+
<tr>
5+
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
6+
<tr>
7+
<td class="pageHeading">Administrators</td>
8+
<td class="pageHeading" align="right"><img src="resources/admin/images/pixel_trans.gif" border="0" alt="" width="57" height="40" /></td>
9+
</tr>
10+
</table></td>
11+
</tr>
12+
<!--
13+
<tr>
14+
<td>
15+
<table border="0" width="100%" cellspacing="0" cellpadding="2">
16+
<tr class="messageStackError">
17+
<td class="messageStackError"><img src="resources/admin/images/icons/error.gif" border="0" alt="Error" title="Error" />&nbsp;<strong>Additional Protection With htaccess/htpasswd</strong><p>This osCommerce Online Merchant Administration Tool installation is not additionally secured through htaccess/htpasswd means.</p><p>Enabling the htaccess/htpasswd security layer will automatically store administrator username and passwords in a htpasswd file when updating administrator password records.</p><p><strong>Please note</strong>, if this additional security layer is enabled and you can no longer access the Administration Tool, please make the following changes and consult your hosting provider to enable htaccess/htpasswd protection:</p><p><u><strong>1. Edit this file:</strong></u><br /><br />/opt/local/apache2/htdocs/oscommerce2/admin/.htaccess</p><p>Remove the following lines if they exist:</p><p><i>##### OSCOMMERCE ADMIN PROTECTION - BEGIN #####<br />AuthType Basic<br />AuthName "osCommerce Online Merchant Administration Tool"<br />AuthUserFile /opt/local/apache2/htdocs/oscommerce2/admin/.htpasswd_oscommerce<br />Require valid-user<br />##### OSCOMMERCE ADMIN PROTECTION - END #####</i></p><p><u><strong>2. Delete this file:</strong></u><br /><br />/opt/local/apache2/htdocs/oscommerce2/admin/.htpasswd_oscommerce</p></td>
18+
</tr>
19+
</table>
20+
</td>
21+
</tr>
22+
-->
23+
<tr>
24+
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
25+
<tr>
26+
<td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
27+
<tr class="dataTableHeadingRow">
28+
<td class="dataTableHeadingContent">Administrators</td>
29+
<td class="dataTableHeadingContent" align="center">Secured by htpasswd</td>
30+
<td class="dataTableHeadingContent" align="right">Action&nbsp;</td>
31+
</tr>
32+
<c:forEach var="administrator" items="${administrators}">
33+
<c:if test="${administrator.id == thisAdministrator.id}">
34+
<tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='<c:url value="/admin/administrators/${administrator.id}"/>'">
35+
<td class="dataTableContent">${administrator.userName}</td>
36+
<td class="dataTableContent" align="center"><img src="resources/admin/images/icon_status_red.gif" border="0" alt="Not Secured" title="Not Secured" width="10" height="10" /></td>
37+
<td class="dataTableContent" align="right"><img src="resources/admin/images/icon_arrow_right.gif" border="0" alt="" />&nbsp;</td>
38+
</tr>
39+
</c:if>
40+
<c:if test="${administrator.id != thisAdministrator.id}">
41+
<tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='<c:url value="/admin/administrators/${administrator.id}"/>'">
42+
<td class="dataTableContent">${administrator.userName}</td>
43+
<td class="dataTableContent" align="center"><img src="resources/admin/images/icon_status_red.gif" border="0" alt="Not Secured" title="Not Secured" width="10" height="10" /></td>
44+
<td class="dataTableContent" align="right"><a href="<c:url value="/admin/administrators/${administrator.id}"/>"><img src="resources/admin/images/icon_info.gif" border="0" alt="Info" title="Info" /></a>&nbsp;</td>
45+
</tr>
46+
</c:if>
47+
</c:forEach>
48+
<tr>
49+
<td class="smallText" colspan="3" align="right"><span class="tdbLink"><a id="tdb1" href="<c:url value="/admin/administrators/insert"/>">Insert</a></span><script type="text/javascript">$("#tdb1").button({icons:{primary:"ui-icon-plus"}}).addClass("ui-priority-secondary").parent().removeClass("tdbLink");</script></td>
50+
</tr>
51+
</table></td>
52+
<td width="25%" valign="top">
53+
<table border="0" width="100%" cellspacing="0" cellpadding="2">
54+
<tr class="infoBoxHeading">
55+
<td class="infoBoxHeading"><strong>${thisAdministrator.userName}</strong></td>
56+
</tr>
57+
</table>
58+
<form:form commandName="thisAdministrator" method="post" autocomplete="off">
59+
<form:hidden path="id"/>
60+
<form:hidden path="userPassword"/>
61+
<form:hidden path="userName"/>
62+
<table border="0" width="100%" cellspacing="0" cellpadding="2">
63+
<tr>
64+
<td class="infoBoxContent">Are you sure you want to delete this administrator?</td>
65+
</tr>
66+
<tr>
67+
<td class="infoBoxContent"><br />Username:<br /><c:out value="${thisAdministrator.userName}"/></td>
68+
</tr>
69+
<tr>
70+
<td align="center" class="infoBoxContent"><br /><span class="tdbLink"><button id="tdb2" type="submit">Delete</button></span><script type="text/javascript">$("#tdb2").button({icons:{primary:"ui-icon-disk"}}).addClass("ui-priority-primary").parent().removeClass("tdbLink");</script><span class="tdbLink"><a id="tdb3" href="<c:url value="/admin/administrators/${thisAdministrator.id}"/>">Cancel</a></span><script type="text/javascript">$("#tdb3").button({icons:{primary:"ui-icon-close"}}).addClass("ui-priority-secondary").parent().removeClass("tdbLink");</script></td>
71+
</tr>
72+
</table>
73+
</form:form>
74+
</td>
75+
</tr>
76+
</table></td>
77+
</tr>
78+
</table>

0 commit comments

Comments
 (0)