mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
adding missing file
This commit is contained in:
parent
47bcff4ff6
commit
750f73aa6b
152
src/cpsp/resetPassword.cpsp
Normal file
152
src/cpsp/resetPassword.cpsp
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
<%@ page class="ResetPassword" %>
|
||||||
|
<%@ page form="true" %>
|
||||||
|
<%@ page baseClass="PageRequestMessagedHandler" %>
|
||||||
|
<%@ header include="PageRequestMessagedHandler.h" %>
|
||||||
|
<%@ page compressed="true" %>
|
||||||
|
<%!
|
||||||
|
#include "../SingletonManager/LanguageManager.h"
|
||||||
|
#include "../SingletonManager/SessionManager.h"
|
||||||
|
#include "../SingletonManager/EmailManager.h"
|
||||||
|
#include "../controller/User.h"
|
||||||
|
|
||||||
|
enum PageState {
|
||||||
|
PAGE_ASK,
|
||||||
|
PAGE_WAIT_EMAIL,
|
||||||
|
PAGE_WAIT_ADMIN,
|
||||||
|
PAGE_EMAIL_ALREADY_SEND
|
||||||
|
|
||||||
|
};
|
||||||
|
%><%%
|
||||||
|
|
||||||
|
PageState state = PAGE_ASK;
|
||||||
|
auto lm = LanguageManager::getInstance();
|
||||||
|
auto sm = SessionManager::getInstance();
|
||||||
|
auto adminReceiver = EmailManager::getInstance()->getAdminReceiver();
|
||||||
|
|
||||||
|
const char* pageName = "Passwort vergessen";
|
||||||
|
auto lang = chooseLanguage(request);
|
||||||
|
|
||||||
|
// class="btn btn-outline-secondary flag-btn"
|
||||||
|
// class="btn btn-secondary disabled flag-btn" disabled
|
||||||
|
std::string eng_btn_classes = "";
|
||||||
|
std::string de_btn_classes = "";
|
||||||
|
|
||||||
|
auto langCatalog = lm->getFreeCatalog(lang);
|
||||||
|
|
||||||
|
std::string emailInputClass = "form-control";
|
||||||
|
std::string passphraseRadioClass = "group";
|
||||||
|
|
||||||
|
std::string email = "";
|
||||||
|
|
||||||
|
if(!form.empty()) {
|
||||||
|
auto session = sm->getNewSession();
|
||||||
|
email = form.get("email", "");
|
||||||
|
auto passphraseMemorized = form.get("passphrase_memorized", "");
|
||||||
|
auto user = controller::User::create();
|
||||||
|
|
||||||
|
if(email != "") {
|
||||||
|
if(!user->getModel()->loadFromDB("email", email) || !user->getModel()->isEmailChecked()) {
|
||||||
|
//printf("user: %s\n", user->getModel()->toString().data());
|
||||||
|
addError(new Error(langCatalog->gettext("E-Mail"), langCatalog->gettext("E-Mail Adresse konnte nicht gefunden werden oder ist nicht aktiviert.")), false);
|
||||||
|
emailInputClass += " is-invalid";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
addError(new Error(langCatalog->gettext("E-Mail"), langCatalog->gettext("E-Mail Adresse nicht angegeben.")), false);
|
||||||
|
emailInputClass += " is-invalid";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(errorCount() < 1 && passphraseMemorized == "") {
|
||||||
|
addError(new Error(langCatalog->gettext("Passphrase"), langCatalog->gettext("Bitte wähle eine Option aus.")), false);
|
||||||
|
passphraseRadioClass += " group-is-invalid";
|
||||||
|
}
|
||||||
|
if(errorCount() == 0) {
|
||||||
|
if(passphraseMemorized == "true") {
|
||||||
|
auto result = session->resetPassword(user, true);
|
||||||
|
if(result == 1) {
|
||||||
|
state = PAGE_EMAIL_ALREADY_SEND;
|
||||||
|
} else if(result == 0) {
|
||||||
|
state = PAGE_WAIT_EMAIL;
|
||||||
|
}
|
||||||
|
} else if(passphraseMemorized == "false") {
|
||||||
|
session->resetPassword(user, false);
|
||||||
|
state = PAGE_WAIT_ADMIN;
|
||||||
|
} else {
|
||||||
|
addError(new Error(langCatalog->gettext("Passphrase"), langCatalog->gettext("Ungültige Option")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//printf("\npassphrase memorized result: %s\n", passphraseMemorized.data());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%><%@ include file="login_header.cpsp" %>
|
||||||
|
<style type="text/css">
|
||||||
|
.group {
|
||||||
|
padding-left:10px;
|
||||||
|
padding-top:10px;
|
||||||
|
padding-bottom:10px;
|
||||||
|
}
|
||||||
|
.group-is-invalid {
|
||||||
|
background-color: rgba(240,130,95,.2);
|
||||||
|
border-color:#dc3545;
|
||||||
|
padding-right:calc(1.5em + .75rem);
|
||||||
|
background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:center right calc(.375em + .1875rem);
|
||||||
|
background-size:calc(.75em + .375rem) calc(.75em + .375rem)
|
||||||
|
}
|
||||||
|
.group-is-invalid .radio label .input-frame::before {
|
||||||
|
border-color:red;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<% if(state == PAGE_ASK) { %>
|
||||||
|
<%@ include file="flags.cpsp" %>
|
||||||
|
<form action="<%= ServerConfig::g_serverPath %>/resetPassword">
|
||||||
|
<div class="item-wrapper">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="email"><%= langCatalog->gettext("Gebe bitte hier deine E-Mail Adresse an:") %> </label>
|
||||||
|
<input type="text" class="<%= emailInputClass %>" name="email" id="email" placeholder="E-Mail" value="<%= email %>">
|
||||||
|
<label><%= langCatalog->gettext("Hast du dir deine Passphrase notiert oder gemerkt?") %></label>
|
||||||
|
<div class="<%= passphraseRadioClass %>">
|
||||||
|
<div class="radio">
|
||||||
|
<label class="radio-label mr-4">
|
||||||
|
<input name="passphrase_memorized" onclick="removeGroupInvalidClass()" type="radio" value="true"><%= langCatalog->gettext("Ja") %> <i class="input-frame"></i>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="radio">
|
||||||
|
<label class="radio-label">
|
||||||
|
<input name="passphrase_memorized" onclick="removeGroupInvalidClass()" type="radio" value="false"><%= langCatalog->gettext("Nein") %> <i class="input-frame"></i>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-sm btn-primary" ><%= langCatalog->gettext("Absenden") %></button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<% } else if(state == PAGE_WAIT_EMAIL) { %>
|
||||||
|
<%= langCatalog->gettext("Dir wird eine E-Mail zugeschickt um dein Passwort zurückzusetzen.") %>
|
||||||
|
<% } else if(state == PAGE_WAIT_ADMIN) { %>
|
||||||
|
<%= langCatalog->gettext("Der Admin hat eine E-Mail bekommen und wird sich bei dir melden.") %>
|
||||||
|
<% } else if(state == PAGE_EMAIL_ALREADY_SEND) { %>
|
||||||
|
<p><%= langCatalog->gettext("Du hast bereits eine E-Mail bekommen. Bitte schau auch in dein Spam-Verzeichnis nach. ") %></p>
|
||||||
|
<p><%= langCatalog->gettext("Du hast wirklich keine E-Mail erhalten und auch schon ein paar Minuten gewartet?") %></p>
|
||||||
|
<p><b><a href="mailto:<%= adminReceiver %>?subject=Error Reset Password email&body=Hallo Dario,%0D%0A%0D%0Aich habe keine Passwort zurücksetzen E-Mail erhalten,%0D%0Akannst du das prüfen?%0D%0A%0D%0AMit freundlichen Grüßen%0D%0A"><%= langCatalog->gettext("E-Mail an Support schicken")%></a></b></p>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="auth_footer">
|
||||||
|
<p class="text-muted text-center">© Gradido 2019</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function removeGroupInvalidClass() {
|
||||||
|
var elements = document.getElementsByClassName("group-is-invalid");
|
||||||
|
if(elements.length > 0) {
|
||||||
|
elements[0].classList.remove("group-is-invalid");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<%@ include file="footer.cpsp" %>
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user