Rev 1045 | Go to most recent revision | Details | Compare with Previous | 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="domains" |
||
9 | */ |
||
10 | public class InetDomain |
||
11 | extends GeneralModelObject |
||
12 | { |
||
1011 | dev | 13 | private String name; |
14 | private User owner; |
||
15 | private InetDomain origin; // save original object state before any changes |
||
919 | dev | 16 | |
17 | protected InetDomain() |
||
18 | { |
||
19 | } |
||
20 | |||
1011 | dev | 21 | protected InetDomain(InetDomain origin) |
22 | { |
||
23 | super(origin); |
||
24 | this.name = origin.name; |
||
25 | this.owner = origin.owner; |
||
26 | } |
||
27 | |||
28 | protected InetDomain getOrigin() |
||
29 | { |
||
30 | return origin; |
||
31 | } |
||
32 | |||
33 | protected void backupMe() |
||
34 | { |
||
35 | if(origin == null) |
||
36 | origin = new InetDomain(this); |
||
37 | } |
||
38 | |||
1045 | dev | 39 | protected void resetOrigin() |
40 | { |
||
41 | origin = null; |
||
42 | } |
||
43 | |||
919 | dev | 44 | /** |
45 | * |
||
46 | * @hibernate.property |
||
47 | */ |
||
48 | public String getName() |
||
49 | { |
||
50 | return name; |
||
51 | } |
||
52 | |||
921 | dev | 53 | protected void setName(String name) |
919 | dev | 54 | { |
55 | this.name = name; |
||
56 | } |
||
57 | |||
921 | dev | 58 | public void setName(User editor, String name) |
59 | throws ModelException |
||
60 | { |
||
61 | if(!editableBy(editor)) |
||
62 | throw new ModelSecurityException(); |
||
63 | |||
1011 | dev | 64 | backupMe(); |
921 | dev | 65 | this.name = name; |
66 | } |
||
67 | |||
919 | dev | 68 | /** |
69 | * |
||
70 | * @hibernate.many-to-one |
||
71 | */ |
||
72 | public User getOwner() |
||
73 | { |
||
74 | return owner; |
||
75 | } |
||
76 | |||
921 | dev | 77 | protected void setOwner(User owner) |
919 | 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 | |||
1011 | dev | 88 | backupMe(); |
921 | dev | 89 | this.owner = owner; |
90 | } |
||
91 | |||
919 | dev | 92 | public String getTypeKey() |
93 | { |
||
1051 | dev | 94 | return ak.hostadmiral.core.resources.CoreResources.TYPE_DOMAIN; |
919 | dev | 95 | } |
96 | |||
97 | public String getIdentKey() |
||
98 | { |
||
1051 | dev | 99 | return ak.hostadmiral.core.resources.CoreResources.IDENT_DOMAIN; |
919 | dev | 100 | } |
101 | |||
102 | public Object[] getIdentParams() |
||
103 | { |
||
104 | return new Object[] { getName() }; |
||
105 | } |
||
106 | |||
107 | public boolean viewableBy(User user) |
||
108 | { |
||
109 | return user.isSuperuser() || user.equals(owner); |
||
110 | } |
||
111 | |||
112 | public boolean editableBy(User user) |
||
113 | { |
||
114 | return user.isSuperuser(); |
||
115 | } |
||
116 | |||
117 | public boolean deleteableBy(User user) |
||
118 | { |
||
119 | return user.isSuperuser(); |
||
120 | } |
||
921 | dev | 121 | |
122 | protected static boolean allowedToCreate(InetDomainManager manager, User editor) |
||
123 | throws ModelException |
||
124 | { |
||
125 | return editor.isSuperuser(); |
||
126 | } |
||
946 | dev | 127 | |
128 | protected static InetDomain createLimitedCopy(InetDomain origin) |
||
129 | { |
||
130 | InetDomain d = new InetDomain(); |
||
131 | d.setName(origin.getName()); |
||
132 | return d; |
||
133 | } |
||
919 | dev | 134 | } |