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>