<%args> $id => undef $login => undef $ret => undef $delete => undef $save => undef $class => undef <%init> unless ($user->check_group(1)) { $m->clear_buffer; $m->abort(403); } my $luser; # Проверка заданности класса - он должен быть задан явно... if ($class) { my @correct_classes = (@{ $state->{available_users} }, 'Contenido::User'); if (! (grep { $_ eq $class } @correct_classes)) { # Класс задан, но он не корректный $class = undef; } } if ($id && ($id>0)) { $luser = $keeper->get_user_by_id($id, class=>$class); } elsif ($login && (length $login > 0)) { $luser = $keeper->get_user_by_login($login, class=>$class); } if ($class and !ref($luser)) { $luser = $class->new($keeper); } # Удаление... if (ref $luser && $delete == 1) { $luser->delete(); $r->header_out("Location", "/contenido/?set_context=profile-admin"); $r->status(302); $r->send_http_header(); $m->abort(); } # Сохранение ... elsif (ref $luser && $save == 1) { my @groups = $luser->groups(); my $res = $m->comp('/contenido/components/set_properties.msn', object => $luser, SETS => \%ARGS); if ($res != 1) { # Ошибка, надо бы обработать... warn "Contenido Debug: set_properties.msn вернул $res\n" if ($state->debug()); } $luser->groups(@groups); $luser->store(); $r->header_out("Location", "users.html?id=".$luser->id()."&class=$class"); $r->status(302); $r->send_http_header(); $m->abort(); } <& "/contenido/components/header.msn" &> <& "/contenido/components/naviline.msn" &> % if ((!defined $luser || !$luser->login) && (!defined $class || !$class)) % { % if (!defined $class || !$class) {
Выберите тип пользователя для создания <& "/contenido/components/new_objects_form.msn", proto => 'users' &>
% } % } elsif (ref $luser) { <& "/contenido/components/obj_list_js.msn", object => $luser &> <& "/contenido/components/object_form.msn", object => $luser, proto => 'users' &> % if ($luser->login) {
<& "/contenido/components/user_sections.msn", luser => $luser &>
% } % }