+=head2 SetSign
+
+=cut
+
+sub Sign {
+ my $self = shift;
+ my $value = shift;
+
+ return undef unless $self->CurrentUserHasRight('SeeQueue');
+ my $attr = $self->FirstAttribute('Sign') or return 0;
+ return $attr->Content;
+}
+
+sub SetSign {
+ my $self = shift;
+ my $value = shift;
+
+ return ( 0, $self->loc('Permission Denied') )
+ unless $self->CurrentUserHasRight('AdminQueue');
+
+ my ($status, $msg) = $self->SetAttribute(
+ Name => 'Sign',
+ Description => 'Sign outgoing messages by default',
+ Content => $value,
+ );
+ return ($status, $msg) unless $status;
+ return ($status, $self->loc('Signing enabled')) if $value;
+ return ($status, $self->loc('Signing disabled'));
+}
+
+sub Encrypt {
+ my $self = shift;
+ my $value = shift;
+
+ return undef unless $self->CurrentUserHasRight('SeeQueue');
+ my $attr = $self->FirstAttribute('Encrypt') or return 0;
+ return $attr->Content;
+}
+
+sub SetEncrypt {
+ my $self = shift;
+ my $value = shift;
+
+ return ( 0, $self->loc('Permission Denied') )
+ unless $self->CurrentUserHasRight('AdminQueue');
+
+ my ($status, $msg) = $self->SetAttribute(
+ Name => 'Encrypt',
+ Description => 'Encrypt outgoing messages by default',
+ Content => $value,
+ );
+ return ($status, $msg) unless $status;
+ return ($status, $self->loc('Encrypting enabled')) if $value;
+ return ($status, $self->loc('Encrypting disabled'));
+}
+
+sub SubjectTag {
+ my $self = shift;
+ return RT->System->SubjectTag( $self );
+}
+
+sub SetSubjectTag {
+ my $self = shift;
+ my $value = shift;
+
+ return ( 0, $self->loc('Permission Denied') )
+ unless $self->CurrentUserHasRight('AdminQueue');
+
+ my $attr = RT->System->FirstAttribute('BrandedSubjectTag');
+ my $map = $attr ? $attr->Content : {};
+ if ( defined $value && length $value ) {
+ $map->{ $self->id } = $value;
+ } else {
+ delete $map->{ $self->id };
+ }
+
+ my ($status, $msg) = RT->System->SetAttribute(
+ Name => 'BrandedSubjectTag',
+ Description => 'Queue id => subject tag map',
+ Content => $map,
+ );
+ return ($status, $msg) unless $status;
+ return ($status, $self->loc(
+ "SubjectTag changed to [_1]",
+ (defined $value && length $value)? $value : $self->loc("(no value)")
+ ))
+}
+