Revision 379 (by ahitrov, 2013/08/21 12:49:37) Emails control for credentials
<% $json %>
<%once>

    use JSON::XS;

</%once>
<%args>

	$id	=> undef
	$email	=> undef

</%args>
<%init>

    my %result;
    if ( $email ) {
	if ( $keeper->{users}->_email_format( $email ) ) {
		my $email_r = $keeper->{users}->_email_reduction( $email );
		if ( $id && $id =~ /^\d+$/) {
			my $object = $keeper->{users}->get_profile( id => $id );
			if ( ref $object ) {
				my ($cred) = $keeper->get_documents(
						name	=> $email_r,
						class	=> 'users::Email',
						limit	=> 1,
					);
				if ( ref $cred && $cred->uid != $object->id ) {
					$result{error} = 'E-mail already registered for another user';
				}
			} else {
				$result{error} = 'User not found';
			}
		} else {
			$result{error} = 'User ID is not valid or not defined';
		}
	} else {
		$result{error} = 'E-mail is not valid';
	}
    } else {
	$result{nothing} = 1;
    }
    $result{ok} = 1	unless exists $result{error} || exists $result{nothing};

    my $json = encode_json \%result;

</%init>

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

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

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

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

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