1 <%@page import="org.wso2.carbon.user.api.UserRealm" %>
2 <%@page import="org.wso2.carbon.context.CarbonContext" %>
3 <%@page import="java.util.List"%>
4 <%@page import="java.util.Arrays"%>
5 <%@page import="java.util.ArrayList"%>
6 <%@page import="org.wso2.carbon.user.api.Permission"%>
7 <html>
8 <head></head>
9 <body>
10 <h2>WSO2 Carbon Role Manage Usage Demo</h2>
11
12 <%
13 CarbonContext context = CarbonContext.getThreadLocalCarbonContext();
14 UserRealm realm = context.getUserRealm();
15 String username = request.getParameter("username");
16
17 if(request.getParameter("add") != null || request.getParameter("remove") != null){
18 String role = request.getParameter("role");
19 if (username != null && username.trim().length() > 0) {
20 if (realm.getUserStoreManager().isExistingUser(username) && realm.getUserStoreManager().isExistingRole(role)) {
21 List<String> rolesList = new ArrayList<String>(Arrays.asList(realm.getUserStoreManager().getRoleListOfUser(username)));
22 if(request.getParameter("add") != null){
23 if(!rolesList.contains(role)){
24 realm.getUserStoreManager().updateRoleListOfUser(username, new String[]{}, new String[]{role});
25 } else{
26 %> <p><b>The user <%=username%> already have <%=role%> </b></p> <%
27 }
28 } else {
29 if(rolesList.contains(role)){
30 realm.getUserStoreManager().updateRoleListOfUser(username, new String[]{role}, new String[]{});
31 } else {
32 %> <p><b>The user <%=username%> does not have <%=role%> </b></p> <%
33 }
34 }
35 } else {
36 %> <p><b>The user <%=username%> or <%=role%> does not exist</b></p> <%
37 }
38 }
39 } else if(request.getParameter("view") != null){
40 String[] rolesList = realm.getUserStoreManager().getRoleListOfUser(username);
41 %><b>Roles of <%=username%></b><ul><%
42 for(String role : rolesList){
43 %><li><%=role%></li><%
44 }
45 }
46 %>
47 </ul>
48
49 <h3>Add/Remove Role</h3>
50 <p>
51 <form action="index.jsp" method="POST">
52 <table>
53 <tr>
54 <td>Username</td>
55 <td><input type="text" name="username"/></td>
56 </tr>
57 <tr>
58 <td>Role</td>
59 <td><input type="text" name="role"/></td>
60 </tr>
61 <tr>
62 <td> </td>
63 <td>
64 <input type="submit" value="Add" name="add"/>
65 <input type="submit" value="Remove" name="remove"/>
66 </td>
67 </tr>
68 </table>
69 </form>
70 </p>
71 </hr>
72
73 <h3>Get User Roles</h3>
74 <p>
75 <form action="index.jsp" method="POST">
76 <table>
77 <tr>
78 <td>Username</td>
79 <td><input type="text" name="username"/></td>
80 </tr>
81 <tr>
82 <td> </td>
83 <td>
84 <input type="submit" value="View" name="view"/>
85 </td>
86 </tr>
87 </table>
88 </form>
89 </p>
90 </hr>
91
92
93 <h3>The Role list</h3>
94 <ol>
95 <%
96 String[] roles = realm.getUserStoreManager().getRoleNames();
97 for (String role : roles) {
98 %><li><%=role%></li><%
99 }
100 %>
101 </ol>
102 </body>
103 </html>