Bivio::Biz::Model::GroupUserQueryForm
# Copyright (c) 2009 bivio Software Inc. All Rights Reserved. # $Id$ package Bivio::Biz::Model::GroupUserQueryForm; use strict; use Bivio::Base 'Model.FilterQueryForm'; b_use('IO.ClassLoaderAUTOLOAD'); my($_T) = b_use('FacadeComponent.Text'); my($_SUBSCRIBED) = 'is_subscribed'; sub get_privilege_role { return _specified_role(shift); } sub get_subscribed { my($role) = _specified_role(shift); return defined($role) && $role eq $_SUBSCRIBED; } sub internal_query_fields { return [ @{shift->SUPER::internal_query_fields(@_)}, [qw(b_privilege Text)], ]; } sub internal_roles { return [grep( !$_->eq_mail_recipient, @{b_use('Model.RoleBaseList')->ROLES_ORDER})]; } sub provide_select_choices { my($self) = @_; return [sort(keys(%{_role_map($self)}))]; } sub to_html { my($self, $v) = @_; return b_use('Bivio::HTML')->escape($v); } sub _role_map { my($self) = @_; return { map({ my($v) = Model_GroupUserList() ->privilege_name($_->get_name, $self->req); $v ? ($v => $_) : (); } @{$self->internal_roles}), Model_GroupUserList() ->privilege_name('UserRealmSubscription.is_subscribed', $self->req) => $_SUBSCRIBED, }; } sub _specified_role { my($self) = @_; return _role_map($self)->{$self->unsafe_get('b_privilege') || ''}; } 1;