Skip to content

Commit ba72b89

Browse files
committed
Add fix for full domain user names
1 parent ac41562 commit ba72b89

File tree

3 files changed

+68
-12
lines changed

3 files changed

+68
-12
lines changed

src/dialog_webview.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ Dialog_webview::Dialog_webview(QWidget *parent) :
3232
QString tmpurl = checkPasswordResetWebPage();
3333

3434
if(!tmpurl.isEmpty() && !tmpurl.isNull()){
35-
ui->widget1->load(QUrl(tmpurl,QUrl::ParsingMode::TolerantMode));
35+
//ui->widget1->load(QUrl(tmpurl,QUrl::ParsingMode::TolerantMode));
36+
ui->widget1->setUrl(QUrl(tmpurl,QUrl::ParsingMode::TolerantMode));
3637
//ui->widget1->setFocus();
3738
qInfo() << "Opening webpage " + tmpurl + " now";
3839
}else{

src/loginform.cpp

Lines changed: 64 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -127,14 +127,15 @@ void LoginForm::initialize()
127127
ui->userInput->completer()->setCompletionMode(QCompleter::InlineCompletion);
128128
}
129129

130-
QString user = Cache().getLastUser();
130+
QString tmp = Cache().getLastUser();
131+
QString user = getShortUsername(tmp);
131132

132133
if (user.isEmpty() || user.isNull()) {
133134
user = m_Greeter.selectUserHint();
134135
ui->pushButton_right->hide();
135136
currentSessionStr = m_Greeter.defaultSessionHint();
136137
}else{
137-
currentSessionStr = Cache().getLastSession(user);
138+
currentSessionStr = Cache().getLastSession(getShortUsername(user));
138139
}
139140

140141

@@ -377,9 +378,9 @@ void LoginForm::authenticationComplete()
377378

378379
needPasswordChange = 0;
379380

380-
addUsertoCache(lastuser);
381-
Cache().setLastUser(lastuser);
382-
Cache().setLastSession(lastuser, currentSessionStr);
381+
addUsertoCache(getShortUsername(lastuser));
382+
Cache().setLastUser(getShortUsername(lastuser));
383+
Cache().setLastSession(getShortUsername(lastuser), currentSessionStr);
383384
Cache().sync();
384385

385386
qWarning() << "Start session : " << currentSessionStr;
@@ -559,11 +560,13 @@ void LoginForm::initializeUserList(){
559560

560561
total_user_count = 0;
561562
animationprogress = false;
563+
QString tmp;
562564

563565

564566

565567
for(int i = 0; i < Settings().cachedusercount(); i++){
566-
userList[i] = Cache().getLastUserfromIndex(i);
568+
tmp = Cache().getLastUserfromIndex(i);
569+
userList[i] = getShortUsername(tmp);
567570

568571
if(!userList[i].isNull() && !userList[i].isEmpty() && userList[i].length() > 1)
569572
total_user_count++;
@@ -584,7 +587,7 @@ void LoginForm::initializeUserList(){
584587
qInfo() << (QString::number(total_user_count) + " users found for last users cache");
585588

586589

587-
currentSessionStr = Cache().getLastSession( userList[0]);
590+
currentSessionStr = Cache().getLastSession( getShortUsername(userList[0]));
588591
qInfo() << "currentSessionStr: " << currentSessionStr;
589592

590593
total_user_count++;
@@ -661,7 +664,6 @@ void LoginForm::addUsertoCache(QString user_name){
661664
if(userList[0].isNull() || userList[0].isEmpty() || userList[0].length() < 2){
662665
userList[i].clear();
663666
}
664-
665667
if(userList[i].compare(user_name) == 0)
666668
userList[i].clear();
667669

@@ -720,7 +722,7 @@ void LoginForm::addUsertoCache(QString user_name){
720722

721723
for(i = 0; i < Settings().cachedusercount(); i++){
722724
if(!userList[i].isNull() && !userList[i].isEmpty() && userList[i].length() > 2)
723-
Cache().setLastUsertoIndex(userList[i], i);
725+
Cache().setLastUsertoIndex(getShortUsername(userList[i]), i);
724726
else
725727
Cache().setLastUsertoIndex("", i);
726728

@@ -1294,7 +1296,7 @@ void LoginForm::LoginTimerFinished(){
12941296
qInfo() << "Login start for " + userid;
12951297

12961298
qInfo() << "User name is sending";
1297-
m_Greeter.authenticate(userid.trimmed());
1299+
m_Greeter.authenticate(fixUserName(userid));
12981300
// addUsertoCache(userid.trimmed());//todo delete
12991301
//Cache().setLastUser(userid.trimmed());//todo delete
13001302

@@ -1612,7 +1614,7 @@ void LoginForm::passwordResetTimerFinished(){
16121614
userx = toolButtons[(lastuserindex+ 1) % 3]->text();
16131615
}
16141616

1615-
m_Greeter.authenticate(userx);
1617+
m_Greeter.authenticate(fixUserName(userx));
16161618
resetTimerState = 2;
16171619
break;
16181620

@@ -2560,3 +2562,54 @@ void LoginForm::on_userInput_textEdited(const QString &arg1)
25602562
emit resetHideTimer();
25612563
justshowed = false;
25622564
}
2565+
2566+
2567+
2568+
QString LoginForm::fixUserName(QString &username){
2569+
2570+
QString newname, tmpname;
2571+
int offset;
2572+
QString realm = getUserRealm(username);
2573+
2574+
offset = username.indexOf(realm.toLower());
2575+
2576+
if(offset < 0)
2577+
offset = username.indexOf(realm.toUpper());
2578+
2579+
if(offset > 1){
2580+
tmpname = username.mid(0, offset - 1);
2581+
}else{
2582+
tmpname = username;
2583+
}
2584+
2585+
if(realm.length() > 2){
2586+
newname = tmpname.trimmed() + "@" + realm;
2587+
}else {
2588+
newname = tmpname;
2589+
}
2590+
2591+
return newname;
2592+
}
2593+
2594+
QString LoginForm::getShortUsername(QString &username){
2595+
2596+
QString newname, tmpname;
2597+
int offset;
2598+
QString realm = getUserRealm(username);
2599+
2600+
offset = username.indexOf(realm.toLower());
2601+
2602+
if(offset < 0)
2603+
offset = username.indexOf(realm.toUpper());
2604+
2605+
if(offset > 1){
2606+
tmpname = username.mid(0, offset - 1);
2607+
}else{
2608+
tmpname = username;
2609+
}
2610+
2611+
2612+
return tmpname;
2613+
2614+
}
2615+

src/loginform.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,8 @@ private slots:
169169
QString getUserRealm(QString username);
170170
void debugBox(QString mes);
171171
QString translateResetPwdMessage(QString message);
172+
QString fixUserName(QString &username);
173+
QString getShortUsername(QString &username);
172174

173175
Ui::LoginForm *ui;
174176

0 commit comments

Comments
 (0)