Subversion Repositories general

Rev

Rev 1051 | 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="systemusers"
9
 */
10
public class SystemUser
11
	extends GeneralModelObject
12
{
13
	/** user id in the OS */
1011 dev 14
	private Integer    uid;
15
	private String     name;
16
	private User       owner;
17
	private SystemUser origin;  // save original object state before any changes
911 dev 18
 
919 dev 19
	protected SystemUser()
20
	{
21
	}
22
 
1011 dev 23
	protected SystemUser(SystemUser origin)
24
	{
25
		super(origin);
26
		this.uid   = origin.uid;
27
		this.name  = origin.name;
28
		this.owner = origin.owner;
29
	}
30
 
31
    protected SystemUser getOrigin()
32
    {
33
        return origin;
34
    }
35
 
36
    protected void backupMe()
37
    {
38
        if(origin == null)
39
            origin = new SystemUser(this);
40
    }
41
 
1045 dev 42
    protected void resetOrigin()
43
    {
44
    	origin = null;
45
    }
46
 
911 dev 47
	/**
48
	 *
919 dev 49
	 * @hibernate.property
50
	 */
51
	public Integer getUid()
52
	{
53
		return uid;
54
	}
55
 
921 dev 56
	protected void setUid(Integer uid)
919 dev 57
	{
58
		this.uid = uid;
59
	}
60
 
921 dev 61
	public void setUid(User editor, Integer uid)
62
		throws ModelException
63
	{
64
		if(!editableBy(editor))
65
			throw new ModelSecurityException();
66
 
67
		this.uid = uid;
68
	}
69
 
919 dev 70
	/**
71
	 *
72
	 * @hibernate.property
73
	 */
74
	public String getName()
75
	{
76
		return name;
77
	}
78
 
921 dev 79
	protected void setName(String name)
919 dev 80
	{
81
		this.name = name;
82
	}
83
 
921 dev 84
	public void setName(User editor, String name)
85
		throws ModelException
86
	{
87
		if(!editableBy(editor))
88
			throw new ModelSecurityException();
89
 
90
		this.name = name;
91
	}
92
 
919 dev 93
	/**
94
	 *
911 dev 95
	 * @hibernate.many-to-one
96
	 */
97
	public User getOwner()
98
	{
99
		return owner;
100
	}
101
 
921 dev 102
	protected void setOwner(User owner)
911 dev 103
	{
104
		this.owner = owner;
105
	}
106
 
921 dev 107
	public void setOwner(User editor, User owner)
108
		throws ModelException
109
	{
110
		if(!editableBy(editor))
111
			throw new ModelSecurityException();
112
 
113
		this.owner = owner;
114
	}
115
 
919 dev 116
	public String getTypeKey()
117
	{
1051 dev 118
		return ak.hostadmiral.core.resources.CoreResources.TYPE_SYSTEM_USER;
919 dev 119
	}
120
 
121
	public String getIdentKey()
122
	{
1051 dev 123
		return ak.hostadmiral.core.resources.CoreResources.IDENT_SYSTEM_USER;
919 dev 124
	}
125
 
126
	public Object[] getIdentParams()
127
	{
128
		return new Object[] { getName(), getUid() };
129
	}
130
 
131
	public boolean viewableBy(User user)
132
	{
133
		return user.isSuperuser() || (owner == null) || user.equals(owner);
134
	}
135
 
136
	public boolean editableBy(User user)
137
	{
138
		return user.isSuperuser();
139
	}
140
 
141
	public boolean deleteableBy(User user)
142
	{
143
		return user.isSuperuser();
144
	}
921 dev 145
 
146
	protected static boolean allowedToCreate(SystemUserManager manager, User editor)
147
		throws ModelException
148
	{
149
		return editor.isSuperuser();
150
	}
949 dev 151
 
152
	protected static SystemUser createLimitedCopy(SystemUser origin)
153
	{
154
		SystemUser u = new SystemUser();
155
		u.setUid(origin.getUid());
156
		u.setName(origin.getName());
157
		return u;
158
	}
1056 dev 159
 
160
	public String toString()
161
	{
162
		return "SystemUser id=[" + getId() + "] uid=[" + uid + "] name=[" + name + "]";
163
	}
919 dev 164
}