Skip to content

Commit 061957f

Browse files
admin: Insert Administrator
1 parent 2b4d337 commit 061957f

File tree

7 files changed

+121
-2
lines changed

7 files changed

+121
-2
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
@@ -15,4 +15,6 @@ public interface AdministratorService extends UserDetailsService {
1515
Administrator findAdministratorById(long administratorId);
1616

1717
void update(Administrator thisAdministrator);
18+
19+
void create(Administrator thisAdministrator);
1820
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@ public void update(Administrator thisAdministrator) {
4444
thisAdministrator = administratorRepository.save(thisAdministrator);
4545
}
4646

47+
@Override
48+
@Transactional(readOnly=false,propagation=Propagation.REQUIRES_NEW)
49+
public void create(Administrator thisAdministrator) {
50+
thisAdministrator.setUserPassword(md5(thisAdministrator.getUserPassword()));
51+
thisAdministrator = administratorRepository.save(thisAdministrator);
52+
}
53+
4754
@Override
4855
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
4956
Administrator administrator = administratorRepository.findByUserName(username);

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,32 @@ public String administratorEditSave(
8585
return "redirect:/admin/administrators/"+administratorId;
8686
}
8787
}
88+
89+
@RequestMapping(value = "/admin/administrators/insert", method = RequestMethod.GET)
90+
public String administratorInsertForm(Model model){
91+
int menuCategory = AdminMenuCategory.CONFIGURATION.ordinal();
92+
model.addAttribute("menuCategory",menuCategory);
93+
Administrator thisAdministrator = new Administrator();
94+
model.addAttribute("thisAdministrator",thisAdministrator);
95+
List<Administrator> administrators = administratorService.findAllAdministrators();
96+
model.addAttribute("administrators",administrators);
97+
return "admin/configuration/administratorsInsert";
98+
}
99+
100+
@RequestMapping(value = "/admin/administrators/insert", method = RequestMethod.POST)
101+
public String administratorInsertSave(
102+
@Valid Administrator thisAdministrator, BindingResult result, Model model){
103+
int menuCategory = AdminMenuCategory.CONFIGURATION.ordinal();
104+
model.addAttribute("menuCategory",menuCategory);
105+
if(result.hasErrors()){
106+
model.addAttribute("thisAdministrator",thisAdministrator);
107+
List<Administrator> administrators = administratorService.findAllAdministrators();
108+
model.addAttribute("administrators",administrators);
109+
return "admin/configuration/administratorsInsert";
110+
} else {
111+
administratorService.create(thisAdministrator);
112+
long administratorId = thisAdministrator.getId();
113+
return "redirect:/admin/administrators/"+administratorId;
114+
}
115+
}
88116
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@
5959
<put-attribute name="bodyContent" value="/WEB-INF/jsp/admin/configuration/administratorsEditForm.jsp" />
6060
</definition>
6161

62+
<definition name="admin/configuration/administratorsInsert" extends="backend">
63+
<put-attribute name="bodyContent" value="/WEB-INF/jsp/admin/configuration/administratorsInsertForm.jsp" />
64+
</definition>
65+
6266

6367
<!-- currencies -->
6468

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
</c:if>
4747
</c:forEach>
4848
<tr>
49-
<td class="smallText" colspan="3" align="right"><span class="tdbLink"><a id="tdb1" href="http://localhost/oscommerce2/admin/administrators.php?action=new">Insert</a></span><script type="text/javascript">$("#tdb1").button({icons:{primary:"ui-icon-plus"}}).addClass("ui-priority-secondary").parent().removeClass("tdbLink");</script></td>
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>
5050
</tr>
5151
</table></td>
5252
<td width="25%" valign="top">

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
</c:if>
4747
</c:forEach>
4848
<tr>
49-
<td class="smallText" colspan="3" align="right"><span class="tdbLink"><a id="tdb1" href="http://localhost/oscommerce2/admin/administrators.php?action=new">Insert</a></span><script type="text/javascript">$("#tdb1").button({icons:{primary:"ui-icon-plus"}}).addClass("ui-priority-secondary").parent().removeClass("tdbLink");</script></td>
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>
5050
</tr>
5151
</table></td>
5252
<td width="25%" valign="top">
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>New Administrator</strong></td>
56+
</tr>
57+
</table>
58+
<form:form commandName="thisAdministrator" method="post" autocomplete="off">
59+
<table border="0" width="100%" cellspacing="0" cellpadding="2">
60+
<tr>
61+
<td class="infoBoxContent">Please enter the new administrator with its related data</td>
62+
</tr>
63+
<tr>
64+
<td class="infoBoxContent"><br />Username:<br /><form:input path="userName" maxlength="40"/><form:errors path="userName" /></td>
65+
</tr>
66+
<tr>
67+
<td class="infoBoxContent"><br />New Password:<br /><form:password path="userPassword" maxlength="40"/><form:errors path="userPassword" /></td>
68+
</tr>
69+
<tr>
70+
<td align="center" class="infoBoxContent"><br /><span class="tdbLink"><button id="tdb2" type="submit">Save</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"/>">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)