| 49 | 1 package IMPL::Security::Principal; | 
|  | 2 use strict; | 
|  | 3 use warnings; | 
|  | 4 | 
| 230 | 5 use IMPL::Const qw(:prop); | 
|  | 6 use IMPL::require { | 
|  | 7     AbstractPrincipal => 'IMPL::Security::AbstractPrincipal' | 
|  | 8 }; | 
|  | 9 use IMPL::declare { | 
|  | 10     base => [ | 
|  | 11         'IMPL::Object' => undef, | 
|  | 12         'IMPL::Object::Autofill' => '@_', | 
|  | 13         'IMPL::Security::AbstractPrincipal' => undef | 
|  | 14     ], | 
|  | 15     props => [ | 
| 401 | 16         @{AbstractPrincipal->abstractProps()}, | 
|  | 17         isNobody => PROP_RW | 
| 230 | 18     ] | 
|  | 19 }; | 
| 97 | 20 | 
| 230 | 21 __PACKAGE__->abstractProps([]); | 
| 49 | 22 | 
|  | 23 my $nobody; | 
|  | 24 | 
|  | 25 sub nobody { | 
| 401 | 26     $nobody = $_[0]->new(name => 'nobody', description => '', isNobody => 1) unless $nobody; | 
| 49 | 27     return $nobody; | 
|  | 28 } | 
|  | 29 | 
|  | 30 1; | 
| 74 | 31 | 
|  | 32 __END__ | 
|  | 33 | 
|  | 34 =pod | 
|  | 35 | 
|  | 36 =head1 NAME | 
|  | 37 | 
| 180 | 38 C<IMPL::Security::Principal> Идентификатор пользователя | 
| 74 | 39 | 
|  | 40 C<[Autofill]> | 
|  | 41 | 
|  | 42 =head1 MEMBERS | 
|  | 43 | 
|  | 44 =over | 
|  | 45 | 
|  | 46 =item C<CTOR(%props)> | 
|  | 47 | 
| 180 | 48 Создает новый объект. | 
| 74 | 49 | 
|  | 50 =item C<[get] name> | 
|  | 51 | 
| 180 | 52 Возвращает имя пользователя. | 
| 74 | 53 | 
|  | 54 =item C<[get,set] description> | 
|  | 55 | 
| 180 | 56 Возвращает описание пользователя. | 
| 74 | 57 | 
|  | 58 =back | 
|  | 59 | 
|  | 60 =cut |