Subversion Repositories general

Rev

Rev 1056 | 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;
922 dev 5
 
919 dev 6
/**
7
 *
8
 * @hibernate.class table="mailaliasdests"
9
 */
10
public class MailAliasDestination
11
	extends GeneralModelObject
12
{
13
	private MailAlias alias;
14
	private Mailbox   mailbox;
15
	private String    email;
16
 
17
	protected MailAliasDestination()
18
	{
19
	}
20
 
21
	/**
22
	 *
23
	 * @hibernate.many-to-one
24
	 */
25
	public MailAlias getAlias()
26
	{
27
		return alias;
28
	}
29
 
922 dev 30
	protected void setAlias(MailAlias alias)
919 dev 31
	{
32
		this.alias = alias;
33
	}
34
 
922 dev 35
	public void setAlias(User editor, MailAlias alias)
36
		throws ModelException
37
	{
38
		if(this.alias != null && !editableBy(editor))
39
			throw new ModelSecurityException();
40
 
41
		this.alias = alias;
42
	}
43
 
919 dev 44
	/**
45
	 *
46
	 * @hibernate.many-to-one
47
	 */
48
	public Mailbox getMailbox()
49
	{
50
		return mailbox;
51
	}
52
 
922 dev 53
	protected void setMailbox(Mailbox mailbox)
919 dev 54
	{
55
		this.mailbox = mailbox;
56
	}
57
 
922 dev 58
	public void setMailbox(User editor, Mailbox mailbox)
59
		throws ModelException
60
	{
61
		if(!editableBy(editor))
62
			throw new ModelSecurityException();
63
 
64
		this.mailbox = mailbox;
65
	}
66
 
919 dev 67
	/**
68
	 *
69
	 * @hibernate.property
70
	 */
71
	public String getEmail()
72
	{
73
		return email;
74
	}
75
 
922 dev 76
	protected void setEmail(String email)
919 dev 77
	{
78
		this.email = email;
79
	}
80
 
922 dev 81
	public void setEmail(User editor, String email)
82
		throws ModelException
83
	{
84
		if(!editableBy(editor))
85
			throw new ModelSecurityException();
86
 
87
		this.email = email;
88
	}
89
 
919 dev 90
	public String getTypeKey()
91
	{
1051 dev 92
		return ak.hostadmiral.core.resources.CoreResources.TYPE_MAIL_ALIAS_DESTINATION;
919 dev 93
	}
94
 
95
	public String getIdentKey()
96
	{
97
		if(getMailbox() == null)
1051 dev 98
			return ak.hostadmiral.core.resources.CoreResources.IDENT_MAIL_ALIAS_DESTINATION_EXTERNAL;
919 dev 99
		else
1051 dev 100
			return ak.hostadmiral.core.resources.CoreResources.IDENT_MAIL_ALIAS_DESTINATION_INTERNAL;
919 dev 101
	}
102
 
103
	public Object[] getIdentParams()
104
	{
105
		if(getMailbox() == null)
106
			return new Object[] { getEmail() };
107
		else
108
			return new Object[] { getMailbox().getLogin(), getMailbox().getDomain().getName() };
109
	}
110
 
111
	public boolean viewableBy(User user)
112
	{
113
		return alias.viewableBy(user);
114
	}
115
 
116
	public boolean editableBy(User user)
117
	{
922 dev 118
		return alias.mayChangeDestinations(user);
919 dev 119
	}
120
 
121
	public boolean deleteableBy(User user)
122
	{
922 dev 123
		return alias.mayChangeDestinations(user);
919 dev 124
	}
922 dev 125
 
126
	protected static boolean allowedToCreate(MailAliasDestinationManager manager, User editor)
127
		throws ModelException
128
	{
129
		return true;
130
	}
1056 dev 131
 
132
	public String toString()
133
	{
134
		return "MailAliasDestination id=[" + getId() + "] alias=["
135
			+ (alias == null ? "_none_" : alias.getAddress() + "@"
136
				+ (alias.getDomain() == null ? "_none_" : alias.getDomain().getName()))
137
			+ "] mailbox=[" + (mailbox == null ? "_none_" : mailbox.getLogin() + "@"
1221 dev 138
				+ (mailbox.getDomain() == null ? "_none_" : mailbox.getDomain().getName()))
1056 dev 139
			+ "] email=[" + (email == null ? "_none_" : email) + "]";
140
	}
919 dev 141
}