Example #1
0
        if ($oidc->hasWellKnownConfig()) {
            // The site has a .well-known file, so it uses OpenID Connect
            if ($oidc->supportsDynamicRegistration()) {
                list($oidcId, $oidcSecret) = $oidc->dynamicRegistration();
            } else {
                // OpenID connect, but no dynamic registration and no explicit config.
                // Log this and display an error message.
                log_userlog("Need OpenID Connect registration for {$openid}");
                FlashMessage::add('Momentan nu putem accepta OpenID de la acest furnizor. Problema nu ține de noi, dar vom încerca să o reparăm.');
            }
        } else {
            // asume plain OpenID
            $isOpenidConnect = false;
        }
    }
    if (!FlashMessage::getMessage()) {
        if ($isOpenidConnect) {
            try {
                $oidc->authenticate($oidcId, $oidcSecret);
            } catch (OpenIDException $e) {
                FlashMessage::add($e->getMessage());
            }
        } else {
            $authResult = OpenID::beginAuth($openid, null);
            if ($authResult != null) {
                SmartyWrap::displayWithoutSkin('auth/beginAuth.ihtml');
                exit;
            }
        }
    }
}
Example #2
0
function validateDelete($mt)
{
    $numLexems = Model::factory('LexemModel')->where('modelType', $mt->code)->count();
    if ($numLexems) {
        FlashMessage::add("Nu pot șterge tipul '{$mt->code}', deoarece este folosit de {$numLexems} lexeme.");
    }
    $numDependants = Model::factory('ModelType')->where('canonical', $mt->code)->count();
    if ($numDependants > 1) {
        FlashMessage::add("Nu pot șterge tipul '{$mt->code}', deoarece este canonic pentru alte tipuri.");
    }
    return FlashMessage::getMessage() == null;
}
Example #3
0
function validate($lexem, $original, $variantIds, $meanings)
{
    if (!$lexem->form) {
        FlashMessage::add('Forma nu poate fi vidă.');
    }
    $numAccents = mb_substr_count($lexem->form, "'");
    // Note: we allow multiple accents for lexems like hárcea-párcea
    if ($numAccents && $lexem->noAccent) {
        FlashMessage::add('Ați indicat că lexemul nu necesită accent, dar forma conține un accent.');
    } else {
        if (!$numAccents && !$lexem->noAccent) {
            FlashMessage::add('Adăugați un accent sau debifați câmpul "Necesită accent".');
        }
    }
    foreach ($lexem->getLexemModels() as $lm) {
        $hasS = false;
        $hasP = false;
        for ($i = 0; $i < mb_strlen($lm->restriction); $i++) {
            $c = StringUtil::getCharAt($lm->restriction, $i);
            if ($c == 'T' || $c == 'U' || $c == 'I') {
                if ($lm->modelType != 'V' && $lm->modelType != 'VT') {
                    FlashMessage::add("Restricția <b>{$c}</b> se aplică numai verbelor");
                }
            } else {
                if ($c == 'S') {
                    if ($lm->modelType == 'I' || $lm->modelType == 'T') {
                        FlashMessage::add("Restricția <b>S</b> nu se aplică modelului {$lm->modelType}");
                    }
                    $hasS = true;
                } else {
                    if ($c == 'P') {
                        if ($lm->modelType == 'I' || $lm->modelType == 'T') {
                            FlashMessage::add("Restricția <b>P</b> nu se aplică modelului {$lm->modelType}");
                        }
                        $hasP = true;
                    } else {
                        FlashMessage::add("Restricția <b>{$c}</b> este incorectă.");
                    }
                }
            }
        }
        if ($hasS && $hasP) {
            FlashMessage::add("Restricțiile <b>S</b> și <b>P</b> nu pot coexista.");
        }
        $ifs = $lm->generateInflectedForms();
        if (!is_array($ifs)) {
            $infl = Inflection::get_by_id($ifs);
            FlashMessage::add(sprintf("Nu pot genera flexiunea '%s' conform modelului %s%s", htmlentities($infl->description), $lm->modelType, $lm->modelNumber));
        }
    }
    $variantOf = Lexem::get_by_id($lexem->variantOfId);
    if ($variantOf && !goodForVariantJson($meanings)) {
        FlashMessage::add("Acest lexem este o variantă a lui {$variantOf} și nu poate avea el însuși sensuri. " . "Este permis doar un sens, fără conținut, pentru indicarea surselor și a registrelor de folosire.");
    }
    if ($variantOf && !empty($variantIds)) {
        FlashMessage::add("Acest lexem este o variantă a lui {$variantOf} și nu poate avea el însuși variante.");
    }
    if ($variantOf && $variantOf->id == $lexem->id) {
        FlashMessage::add("Lexemul nu poate fi variantă a lui însuși.");
    }
    foreach ($variantIds as $variantId) {
        $variant = Lexem::get_by_id($variantId);
        if ($variant->id == $lexem->id) {
            FlashMessage::add('Lexemul nu poate fi variantă a lui însuși.');
        }
        if ($variant->variantOfId && $variant->variantOfId != $lexem->id) {
            $other = Lexem::get_by_id($variant->variantOfId);
            FlashMessage::add("\"{$variant}\" este deja marcat ca variantă a lui \"{$other}\".");
        }
        $variantVariantCount = Model::factory('Lexem')->where('variantOfId', $variant->id)->count();
        if ($variantVariantCount) {
            FlashMessage::add("\"{$variant}\" are deja propriile lui variante.");
        }
        $variantMeanings = Model::factory('Meaning')->where('lexemId', $variant->id)->find_many();
        if (!goodForVariant($variantMeanings)) {
            FlashMessage::add("\"{$variant}\" are deja propriile lui sensuri.");
        }
    }
    if ($lexem->structStatus == Lexem::STRUCT_STATUS_DONE && $original->structStatus != Lexem::STRUCT_STATUS_DONE && !util_isModerator(PRIV_EDIT)) {
        FlashMessage::add("Doar moderatorii pot marca structurarea drept terminată. Vă rugăm să folosiți valoarea „așteaptă moderarea”.");
    }
    return FlashMessage::getMessage() == null;
}