Rev 961 | 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 | |||
919 | dev | 39 | /** |
40 | * |
||
41 | * @hibernate.property |
||
42 | */ |
||
43 | public String getName() |
||
44 | { |
||
45 | return name; |
||
46 | } |
||
47 | |||
921 | dev | 48 | protected void setName(String name) |
919 | dev | 49 | { |
50 | this.name = name; |
||
51 | } |
||
52 | |||
921 | dev | 53 | public void setName(User editor, String name) |
54 | throws ModelException |
||
55 | { |
||
56 | if(!editableBy(editor)) |
||
57 | throw new ModelSecurityException(); |
||
58 | |||
1011 | dev | 59 | backupMe(); |
921 | dev | 60 | this.name = name; |
61 | } |
||
62 | |||
919 | dev | 63 | /** |
64 | * |
||
65 | * @hibernate.many-to-one |
||
66 | */ |
||
67 | public User getOwner() |
||
68 | { |
||
69 | return owner; |
||
70 | } |
||
71 | |||
921 | dev | 72 | protected void setOwner(User owner) |
919 | dev | 73 | { |
74 | this.owner = owner; |
||
75 | } |
||
76 | |||
921 | dev | 77 | public void setOwner(User editor, User owner) |
78 | throws ModelException |
||
79 | { |
||
80 | if(!editableBy(editor)) |
||
81 | throw new ModelSecurityException(); |
||
82 | |||
1011 | dev | 83 | backupMe(); |
921 | dev | 84 | this.owner = owner; |
85 | } |
||
86 | |||
919 | dev | 87 | public String getTypeKey() |
88 | { |
||
924 | dev | 89 | return ak.hostadmiral.core.CoreResources.TYPE_DOMAIN; |
919 | dev | 90 | } |
91 | |||
92 | public String getIdentKey() |
||
93 | { |
||
924 | dev | 94 | return ak.hostadmiral.core.CoreResources.IDENT_DOMAIN; |
919 | dev | 95 | } |
96 | |||
97 | public Object[] getIdentParams() |
||
98 | { |
||
99 | return new Object[] { getName() }; |
||
100 | } |
||
101 | |||
102 | public boolean viewableBy(User user) |
||
103 | { |
||
104 | return user.isSuperuser() || user.equals(owner); |
||
105 | } |
||
106 | |||
107 | public boolean editableBy(User user) |
||
108 | { |
||
109 | return user.isSuperuser(); |
||
110 | } |
||
111 | |||
112 | public boolean deleteableBy(User user) |
||
113 | { |
||
114 | return user.isSuperuser(); |
||
115 | } |
||
921 | dev | 116 | |
117 | protected static boolean allowedToCreate(InetDomainManager manager, User editor) |
||
118 | throws ModelException |
||
119 | { |
||
120 | return editor.isSuperuser(); |
||
121 | } |
||
946 | dev | 122 | |
123 | protected static InetDomain createLimitedCopy(InetDomain origin) |
||
124 | { |
||
125 | InetDomain d = new InetDomain(); |
||
126 | d.setName(origin.getName()); |
||
127 | return d; |
||
128 | } |
||
919 | dev | 129 | } |