예제 #1
0
    public function create($request)
    {
        $req = $request->getParameters();
        $data = array();
        $data['currentPageTitle'] = 'Mot de passe oublié';
        $resp = new ViewResponse('password/password', $data);
        if (!empty($req['email']) xor !empty($req['pseudo'])) {
            if (!empty($req['email'])) {
                if (Utils::validateMail($req['email'])) {
                    if (User::exists(array('email' => $req['email']))) {
                        $user_id = User::find(array('email' => $req['email']))->id;
                        $email = $req['email'];
                    } else {
                        $resp->addMessage(ViewMessage::error('Cette adresse E-Mail n\'est associée à aucun compte.'));
                        return $resp;
                    }
                } else {
                    $resp->addMessage(ViewMessage::error('Merci de renseigner une adresse E-Mail valide !'));
                    return $resp;
                }
            } else {
                if (!empty($req['pseudo'])) {
                    if (User::exists(array('username' => $req['pseudo']))) {
                        $user_id = User::find(array('username' => $req['pseudo']))->id;
                        $email = User::find(array('username' => $req['pseudo']))->email;
                    } else {
                        $resp->addMessage(ViewMessage::error('Ce Pseudo n\'est associé à aucun compte.'));
                        return $resp;
                    }
                }
            }
            $key = md5(uniqid());
            Password::create(array('user_id' => $user_id, 'key' => $key));
            $headers = 'From: DreamVids <*****@*****.**>' . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=utf-8' . "\r\n";
            $message = 'Vous avez demandé la réinitialisation de votre mot de passe DreamVids. Clique sur le lien ci-dessous pour accéder à votre nouveau mot de passe :<br /><br />
			<a href="http://dreamvids.fr/password/' . $key . '">http://dreamvids.fr/password/' . $key . '</a>';
            mail($email, 'DreamVids - Mot de passe oublié', $message, $headers);
            $resp->addMessage(ViewMessage::success('Vous allez recevoir un E-Mail à l\'adresse ' . $email . ', suivez-en les instructions.'));
        } else {
            $resp->addMessage(ViewMessage::error('Merci de renseigner une Adresse E-Mail OU un Pseudo.'));
        }
        return $resp;
    }
예제 #2
0
 public function generatePassword()
 {
     ClassLoader::import("library.text.Password");
     return new RawResponse(Password::create(10, Password::MIX));
 }
예제 #3
0
 /**
  * @param $fieldname
  * @param $type
  * @return static
  */
 public static final function createByType($fieldname, $type)
 {
     switch ($type) {
         case static::Type_Text:
             return Text::create($fieldname);
         case static::Type_Password:
             return Password::create($fieldname);
         case static::Type_TextArea:
             return TextArea::create($fieldname);
         case static::Type_CheckGroup:
             return CheckGroup::create($fieldname);
         case static::Type_RadioGroup:
             return RadioGroup::create($fieldname);
         case static::Type_Select:
             return Select::create($fieldname);
         case static::Type_MultiSelect:
             return MultiSelect::create($fieldname);
         case static::Type_Image:
             return Image::create($fieldname);
         case static::Type_MultiImage:
             return MultiImage::create($fieldname);
         case static::Type_Tags:
             return Tags::create($fieldname);
         case static::Type_Article:
             return Article::create($fieldname);
         case static::Type_Date:
             return Date::create($fieldname);
         case static::Type_SelectItem:
             return SelectItem::create($fieldname);
         case static::Type_DateTime:
             return DateTime::create($fieldname);
         case static::Type_DateRange:
             return DateRange::create($fieldname);
         case static::Type_Appendable:
             return Appendable::create($fieldname);
     }
 }