Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
924 | dev | 1 | package ak.hostadmiral.core.model; |
919 | dev | 2 | |
924 | dev | 3 | import ak.hostadmiral.util.ModelException; |
4 | import ak.hostadmiral.util.ModelSecurityException; |
||
921 | dev | 5 | |
919 | dev | 6 | /** |
7 | * |
||
8 | * @hibernate.class table="systemusers" |
||
9 | */ |
||
10 | public class SystemUser |
||
11 | extends GeneralModelObject |
||
12 | { |
||
13 | /** user id in the OS */ |
||
14 | private Integer uid; |
||
15 | private String name; |
||
911 | dev | 16 | private User owner; |
17 | |||
919 | dev | 18 | protected SystemUser() |
19 | { |
||
20 | } |
||
21 | |||
911 | dev | 22 | /** |
23 | * |
||
919 | dev | 24 | * @hibernate.property |
25 | */ |
||
26 | public Integer getUid() |
||
27 | { |
||
28 | return uid; |
||
29 | } |
||
30 | |||
921 | dev | 31 | protected void setUid(Integer uid) |
919 | dev | 32 | { |
33 | this.uid = uid; |
||
34 | } |
||
35 | |||
921 | dev | 36 | public void setUid(User editor, Integer uid) |
37 | throws ModelException |
||
38 | { |
||
39 | if(!editableBy(editor)) |
||
40 | throw new ModelSecurityException(); |
||
41 | |||
42 | this.uid = uid; |
||
43 | } |
||
44 | |||
919 | dev | 45 | /** |
46 | * |
||
47 | * @hibernate.property |
||
48 | */ |
||
49 | public String getName() |
||
50 | { |
||
51 | return name; |
||
52 | } |
||
53 | |||
921 | dev | 54 | protected void setName(String name) |
919 | dev | 55 | { |
56 | this.name = name; |
||
57 | } |
||
58 | |||
921 | dev | 59 | public void setName(User editor, String name) |
60 | throws ModelException |
||
61 | { |
||
62 | if(!editableBy(editor)) |
||
63 | throw new ModelSecurityException(); |
||
64 | |||
65 | this.name = name; |
||
66 | } |
||
67 | |||
919 | dev | 68 | /** |
69 | * |
||
911 | dev | 70 | * @hibernate.many-to-one |
71 | */ |
||
72 | public User getOwner() |
||
73 | { |
||
74 | return owner; |
||
75 | } |
||
76 | |||
921 | dev | 77 | protected void setOwner(User owner) |
911 | dev | 78 | { |
79 | this.owner = owner; |
||
80 | } |
||
81 | |||
921 | dev | 82 | public void setOwner(User editor, User owner) |
83 | throws ModelException |
||
84 | { |
||
85 | if(!editableBy(editor)) |
||
86 | throw new ModelSecurityException(); |
||
87 | |||
88 | this.owner = owner; |
||
89 | } |
||
90 | |||
919 | dev | 91 | public String getTypeKey() |
92 | { |
||
924 | dev | 93 | return ak.hostadmiral.core.CoreResources.TYPE_SYSTEM_USER; |
919 | dev | 94 | } |
95 | |||
96 | public String getIdentKey() |
||
97 | { |
||
924 | dev | 98 | return ak.hostadmiral.core.CoreResources.IDENT_SYSTEM_USER; |
919 | dev | 99 | } |
100 | |||
101 | public Object[] getIdentParams() |
||
102 | { |
||
103 | return new Object[] { getName(), getUid() }; |
||
104 | } |
||
105 | |||
106 | public boolean viewableBy(User user) |
||
107 | { |
||
108 | return user.isSuperuser() || (owner == null) || user.equals(owner); |
||
109 | } |
||
110 | |||
111 | public boolean editableBy(User user) |
||
112 | { |
||
113 | return user.isSuperuser(); |
||
114 | } |
||
115 | |||
116 | public boolean deleteableBy(User user) |
||
117 | { |
||
118 | return user.isSuperuser(); |
||
119 | } |
||
921 | dev | 120 | |
121 | protected static boolean allowedToCreate(SystemUserManager manager, User editor) |
||
122 | throws ModelException |
||
123 | { |
||
124 | return editor.isSuperuser(); |
||
125 | } |
||
919 | dev | 126 | } |