1 16 package web.security.impl; 17 18 import java.io.Serializable ; 19 import java.util.List ; 20 import java.util.Vector ; 21 22 import web.security.Group; 23 import web.security.Privilege; 24 import web.security.Role; 25 import web.security.User; 26 27 28 32 public class UserImpl implements User, Serializable { 33 34 String name; 35 String password; 36 List roles; 37 List groups; 38 39 public UserImpl(){ 40 this(null); 41 } 42 43 public UserImpl(String name){ 44 this.name = name; 45 } 46 47 50 public Group[] groups() { 51 if(groups == null) 52 return null; 53 return (Group[])groups.toArray(new Group[groups.size()]); 54 } 55 56 59 public String getName() { 60 return name; 61 } 62 63 66 public Role[] roles() { 67 if(roles == null) 68 return null; 69 return (Role[])roles.toArray(new Role[roles.size()]); 70 } 71 72 76 public void addRole(Role role) { 77 if(roles==null) 78 roles = new Vector (); 79 if(!roles.contains(role)) 80 roles.add(role); 81 } 82 86 public boolean canDo(Privilege pvg) { 87 for(int i=0;roles!=null&&i<roles.size();i++){ 88 if(((Role)roles.get(i)).canDo(pvg)) 89 return true; 90 } 91 for(int i=0;groups!=null&&i<groups.size();i++){ 92 Group g = (Group)groups.get(i); 93 Role[] rs = g.roles(); 94 for(int j=0;rs!=null&&j<rs.length;j++){ 95 if(rs[j].canDo(pvg)) 96 return true; 97 } 98 } 99 return false; 100 } 101 102 public void setGroups(List groups) { 103 this.groups = groups; 104 } 105 public void setName(String name) { 106 this.name = name; 107 } 108 public void setRoles(List roles) { 109 this.roles = roles; 110 } 111 public List getGroups() { 112 return groups; 113 } 114 public List getRoles() { 115 return roles; 116 } 117 118 public String getPassword() { 119 return password; 120 } 121 public void setPassword(String password) { 122 this.password = password; 123 } 124 } 125 | Popular Tags |