Line # Revision Author
1 523 ahitrov <% $json %>
2 <%once>
3
4 use JSON::XS;
5
6 </%once>
7 <%args>
8
9 $id => undef
10 $phone => undef
11
12 </%args>
13 <%init>
14
15 my %result;
16 if ( $phone ) {
17 if ( $keeper->{users}->_phone_format( $phone ) ) {
18 my $phone_r = $keeper->{users}->_phone_reduction( $phone );
19 if ( $id && $id =~ /^\d+$/) {
20 my $object = $keeper->{users}->get_profile( id => $id );
21 if ( ref $object ) {
22 my ($cred) = $keeper->get_documents(
23 name => $phone_r,
24 class => 'users::Phone',
25 limit => 1,
26 );
27 if ( ref $cred && $cred->uid != $object->id ) {
28 $result{error} = 'Phone already registered for another user';
29 }
30 } else {
31 $result{error} = 'User not found';
32 }
33 } else {
34 $result{error} = 'User ID is not valid or not defined';
35 }
36 } else {
37 $result{error} = 'Phone is not valid';
38 }
39 } else {
40 $result{nothing} = 1;
41 }
42 $result{ok} = 1 unless exists $result{error} || exists $result{nothing};
43
44 my $json = encode_json \%result;
45
46 </%init>

Небольшая справка по веткам

cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.

koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.

utf8 – актуальная ветка, заточенная под UTF-8.

Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.