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>&nbsp;</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>&nbsp;</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>