-rw-r--r-- | core/settings/security/multiauthconfig.cpp | 16 | ||||
-rw-r--r-- | core/settings/security/security.cpp | 18 |
2 files changed, 17 insertions, 17 deletions
diff --git a/core/settings/security/multiauthconfig.cpp b/core/settings/security/multiauthconfig.cpp index 535352a..ff11e49 100644 --- a/core/settings/security/multiauthconfig.cpp +++ b/core/settings/security/multiauthconfig.cpp | |||
@@ -479,173 +479,173 @@ void MultiauthConfig::loadPlugins() { | |||
479 | plugin.active = true; | 479 | plugin.active = true; |
480 | } else { | 480 | } else { |
481 | plugin.active = false; | 481 | plugin.active = false; |
482 | } | 482 | } |
483 | 483 | ||
484 | plugin.pluginObject = plugin.iface->plugin(); | 484 | plugin.pluginObject = plugin.iface->plugin(); |
485 | 485 | ||
486 | // "prebuffer" it in one more list, to get the sorting done | 486 | // "prebuffer" it in one more list, to get the sorting done |
487 | sortList.insert( plugin.name, plugin ); | 487 | sortList.insert( plugin.name, plugin ); |
488 | 488 | ||
489 | // on first start the list is off course empty | 489 | // on first start the list is off course empty |
490 | if ( m_allPlugins.isEmpty() ) { | 490 | if ( m_allPlugins.isEmpty() ) { |
491 | pluginList.append( plugin ); | 491 | pluginList.append( plugin ); |
492 | } | 492 | } |
493 | // if plugin is not yet in the list, add it to the layout too | 493 | // if plugin is not yet in the list, add it to the layout too |
494 | else if ( !m_allPlugins.contains( plugin.name ) ) { | 494 | else if ( !m_allPlugins.contains( plugin.name ) ) { |
495 | pluginList.append( plugin ); | 495 | pluginList.append( plugin ); |
496 | } | 496 | } |
497 | 497 | ||
498 | } else { | 498 | } else { |
499 | delete lib; | 499 | delete lib; |
500 | } | 500 | } |
501 | 501 | ||
502 | } // end for | 502 | } // end for |
503 | 503 | ||
504 | // put m_allPlugins tempPlugin objects into pluginList | 504 | // put m_allPlugins tempPlugin objects into pluginList |
505 | if ( !m_allPlugins.isEmpty() ) { | 505 | if ( !m_allPlugins.isEmpty() ) { |
506 | MultiauthPlugin tempPlugin; | 506 | MultiauthPlugin tempPlugin; |
507 | QStringList::Iterator stringit; | 507 | QStringList::Iterator stringit; |
508 | for( stringit = m_allPlugins.begin(); stringit != m_allPlugins.end(); ++stringit ) { | 508 | for( stringit = m_allPlugins.begin(); stringit != m_allPlugins.end(); ++stringit ) { |
509 | tempPlugin = ( sortList.find( *stringit ) ).data(); | 509 | tempPlugin = ( sortList.find( *stringit ) ).data(); |
510 | if ( !( (tempPlugin.name).isEmpty() ) ) { | 510 | if ( !( (tempPlugin.name).isEmpty() ) ) { |
511 | pluginList.append( tempPlugin ); | 511 | pluginList.append( tempPlugin ); |
512 | } | 512 | } |
513 | } | 513 | } |
514 | } | 514 | } |
515 | 515 | ||
516 | } | 516 | } |
517 | 517 | ||
518 | void MultiauthConfig::deleteListEntry() | 518 | void MultiauthConfig::deleteListEntry() |
519 | { | 519 | { |
520 | m_syncWidget->syncnet->removeItem(m_syncWidget->syncnet->currentItem()); | 520 | m_syncWidget->syncnet->removeItem(m_syncWidget->syncnet->currentItem()); |
521 | } | 521 | } |
522 | 522 | ||
523 | void MultiauthConfig::restoreDefaults() | 523 | void MultiauthConfig::restoreDefaults() |
524 | { | 524 | { |
525 | QMessageBox unrecbox( | 525 | QMessageBox unrecbox( |
526 | tr("Attention"), | 526 | tr("Attention"), |
527 | tr( "<p>All user-defined net ranges will be lost."), | 527 | "<p>" + tr("All user-defined net ranges will be lost.") + "</p>", |
528 | QMessageBox::Warning, | 528 | QMessageBox::Warning, |
529 | QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::NoButton, | 529 | QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::NoButton, |
530 | 0, QString::null, TRUE, WStyle_StaysOnTop); | 530 | 0, QString::null, TRUE, WStyle_StaysOnTop); |
531 | unrecbox.setButtonText(QMessageBox::Cancel, tr("Cancel")); | 531 | unrecbox.setButtonText(QMessageBox::Cancel, tr("Cancel")); |
532 | unrecbox.setButtonText(QMessageBox::Yes, tr("Ok")); | 532 | unrecbox.setButtonText(QMessageBox::Yes, tr("Ok")); |
533 | 533 | ||
534 | if ( unrecbox.exec() == QMessageBox::Yes) | 534 | if ( unrecbox.exec() == QMessageBox::Yes) |
535 | { | 535 | { |
536 | m_syncWidget->syncnet->clear(); | 536 | m_syncWidget->syncnet->clear(); |
537 | insertDefaultRanges(); | 537 | insertDefaultRanges(); |
538 | } | 538 | } |
539 | m_syncWidget->syncModeCombo->setCurrentItem( 2 ); | 539 | m_syncWidget->syncModeCombo->setCurrentItem( 2 ); |
540 | } | 540 | } |
541 | 541 | ||
542 | void MultiauthConfig::insertDefaultRanges() | 542 | void MultiauthConfig::insertDefaultRanges() |
543 | { | 543 | { |
544 | m_syncWidget->syncnet->insertItem( tr( "192.168.129.0/24" ) ); | 544 | m_syncWidget->syncnet->insertItem( "192.168.129.0/24" ); |
545 | m_syncWidget->syncnet->insertItem( tr( "192.168.1.0/24" ) ); | 545 | m_syncWidget->syncnet->insertItem( "192.168.1.0/24" ); |
546 | m_syncWidget->syncnet->insertItem( tr( "192.168.0.0/16" ) ); | 546 | m_syncWidget->syncnet->insertItem( "192.168.0.0/16" ); |
547 | m_syncWidget->syncnet->insertItem( tr( "172.16.0.0/12" ) ); | 547 | m_syncWidget->syncnet->insertItem( "172.16.0.0/12" ); |
548 | m_syncWidget->syncnet->insertItem( tr( "10.0.0.0/8" ) ); | 548 | m_syncWidget->syncnet->insertItem( "10.0.0.0/8" ); |
549 | m_syncWidget->syncnet->insertItem( tr( "1.0.0.0/8" ) ); | 549 | m_syncWidget->syncnet->insertItem( "1.0.0.0/8" ); |
550 | m_syncWidget->syncnet->insertItem( tr( "Any" ) ); | 550 | m_syncWidget->syncnet->insertItem( tr( "Any" ) ); |
551 | m_syncWidget->syncnet->insertItem( tr( "None" ) ); | 551 | m_syncWidget->syncnet->insertItem( tr( "None" ) ); |
552 | } | 552 | } |
553 | 553 | ||
554 | void MultiauthConfig::updateGUI() | 554 | void MultiauthConfig::updateGUI() |
555 | { | 555 | { |
556 | m_loginWidget->autologinToggle->setChecked(autoLogin); | 556 | m_loginWidget->autologinToggle->setChecked(autoLogin); |
557 | m_loginWidget->userlist->setEnabled(autoLogin); | 557 | m_loginWidget->userlist->setEnabled(autoLogin); |
558 | } | 558 | } |
559 | 559 | ||
560 | void MultiauthConfig::selectNet(int auth_peer,int auth_peer_bits, bool update) | 560 | void MultiauthConfig::selectNet(int auth_peer,int auth_peer_bits, bool update) |
561 | { | 561 | { |
562 | QString sn; | 562 | QString sn; |
563 | if ( auth_peer_bits == 0 && auth_peer == 0 ) { | 563 | if ( auth_peer_bits == 0 && auth_peer == 0 ) { |
564 | sn = tr("Any"); | 564 | sn = tr("Any"); |
565 | } else if ( auth_peer_bits == 32 && auth_peer == 0 ) { | 565 | } else if ( auth_peer_bits == 32 && auth_peer == 0 ) { |
566 | sn = tr("None"); | 566 | sn = tr("None"); |
567 | } else { | 567 | } else { |
568 | sn = | 568 | sn = |
569 | QString::number((auth_peer>>24)&0xff) + "." | 569 | QString::number((auth_peer>>24)&0xff) + "." |
570 | + QString::number((auth_peer>>16)&0xff) + "." | 570 | + QString::number((auth_peer>>16)&0xff) + "." |
571 | + QString::number((auth_peer>>8)&0xff) + "." | 571 | + QString::number((auth_peer>>8)&0xff) + "." |
572 | + QString::number((auth_peer>>0)&0xff) + "/" | 572 | + QString::number((auth_peer>>0)&0xff) + "/" |
573 | + QString::number(auth_peer_bits); | 573 | + QString::number(auth_peer_bits); |
574 | } | 574 | } |
575 | 575 | ||
576 | //insert user-defined list of netranges upon start | 576 | //insert user-defined list of netranges upon start |
577 | if (update) { | 577 | if (update) { |
578 | //User selected/active netrange first | 578 | //User selected/active netrange first |
579 | m_syncWidget->syncnet->insertItem( tr(sn) ); | 579 | m_syncWidget->syncnet->insertItem( tr(sn) ); |
580 | Config cfg("Security"); | 580 | Config cfg("Security"); |
581 | cfg.setGroup("Sync"); | 581 | cfg.setGroup("Sync"); |
582 | 582 | ||
583 | //set up defaults if needed, if someone manually deletes net0 he'll get a suprise hehe | 583 | //set up defaults if needed, if someone manually deletes net0 he'll get a suprise hehe |
584 | QString test = cfg.readEntry("net0",""); | 584 | QString test = cfg.readEntry("net0",""); |
585 | if (test.isEmpty()) { | 585 | if (test.isEmpty()) { |
586 | insertDefaultRanges(); | 586 | insertDefaultRanges(); |
587 | } else { | 587 | } else { |
588 | // 10 ought to be enough for everybody... :) | 588 | // 10 ought to be enough for everybody... :) |
589 | // If you need more, don't forget to edit applySecurity() as well | 589 | // If you need more, don't forget to edit applySecurity() as well |
590 | bool already_there=FALSE; | 590 | bool already_there=FALSE; |
591 | for (int i=0; i<10; i++) { | 591 | for (int i=0; i<10; i++) { |
592 | QString target, netrange; | 592 | QString target, netrange; |
593 | target.sprintf("net%d", i); | 593 | target.sprintf("net%d", i); |
594 | netrange = cfg.readEntry(target,""); | 594 | netrange = cfg.readEntry(target,""); |
595 | if (! netrange.isEmpty()){ | 595 | if (! netrange.isEmpty()){ |
596 | //make sure we have no "twin" entries | 596 | //make sure we have no "twin" entries |
597 | for (int i=0; i<m_syncWidget->syncnet->count(); i++) { | 597 | for (int i=0; i<m_syncWidget->syncnet->count(); i++) { |
598 | if ( m_syncWidget->syncnet->text(i) == netrange ) { | 598 | if ( m_syncWidget->syncnet->text(i) == netrange ) { |
599 | already_there=TRUE; | 599 | already_there=TRUE; |
600 | } | 600 | } |
601 | } | 601 | } |
602 | if (! already_there) { | 602 | if (! already_there) { |
603 | m_syncWidget->syncnet->insertItem( tr( netrange ) ); | 603 | m_syncWidget->syncnet->insertItem( netrange ); |
604 | } else { | 604 | } else { |
605 | already_there=FALSE; | 605 | already_there=FALSE; |
606 | } | 606 | } |
607 | } | 607 | } |
608 | } | 608 | } |
609 | } | 609 | } |
610 | } | 610 | } |
611 | 611 | ||
612 | for (int i=0; i<m_syncWidget->syncnet->count(); i++) { | 612 | for (int i=0; i<m_syncWidget->syncnet->count(); i++) { |
613 | if ( m_syncWidget->syncnet->text(i).left(sn.length()) == sn ) { | 613 | if ( m_syncWidget->syncnet->text(i).left(sn.length()) == sn ) { |
614 | m_syncWidget->syncnet->setCurrentItem(i); | 614 | m_syncWidget->syncnet->setCurrentItem(i); |
615 | return; | 615 | return; |
616 | } | 616 | } |
617 | } | 617 | } |
618 | odebug << "No match for \"" << sn << "\"" << oendl; | 618 | odebug << "No match for \"" << sn << "\"" << oendl; |
619 | } | 619 | } |
620 | 620 | ||
621 | void MultiauthConfig::parseNet(const QString& sn,int& auth_peer,int& auth_peer_bits) | 621 | void MultiauthConfig::parseNet(const QString& sn,int& auth_peer,int& auth_peer_bits) |
622 | { | 622 | { |
623 | auth_peer=0; | 623 | auth_peer=0; |
624 | if ( sn == tr("Any") ) { | 624 | if ( sn == tr("Any") ) { |
625 | auth_peer = 0; | 625 | auth_peer = 0; |
626 | auth_peer_bits = 0; | 626 | auth_peer_bits = 0; |
627 | } else if ( sn == tr("None") ) { | 627 | } else if ( sn == tr("None") ) { |
628 | auth_peer = 0; | 628 | auth_peer = 0; |
629 | auth_peer_bits = 32; | 629 | auth_peer_bits = 32; |
630 | } else { | 630 | } else { |
631 | int x=0; | 631 | int x=0; |
632 | for (int i=0; i<4; i++) { | 632 | for (int i=0; i<4; i++) { |
633 | int nx = sn.find(QChar(i==3 ? '/' : '.'),x); | 633 | int nx = sn.find(QChar(i==3 ? '/' : '.'),x); |
634 | auth_peer = (auth_peer<<8)|sn.mid(x,nx-x).toInt(); | 634 | auth_peer = (auth_peer<<8)|sn.mid(x,nx-x).toInt(); |
635 | x = nx+1; | 635 | x = nx+1; |
636 | } | 636 | } |
637 | uint n = (uint)sn.find(' ',x)-x; | 637 | uint n = (uint)sn.find(' ',x)-x; |
638 | auth_peer_bits = sn.mid(x,n).toInt(); | 638 | auth_peer_bits = sn.mid(x,n).toInt(); |
639 | } | 639 | } |
640 | } | 640 | } |
641 | 641 | ||
642 | void MultiauthConfig::loadUsers() | 642 | void MultiauthConfig::loadUsers() |
643 | { | 643 | { |
644 | QFile passwd("/etc/passwd"); | 644 | QFile passwd("/etc/passwd"); |
645 | if ( passwd.open(IO_ReadOnly) ) { | 645 | if ( passwd.open(IO_ReadOnly) ) { |
646 | QTextStream t( &passwd ); | 646 | QTextStream t( &passwd ); |
647 | QString s; | 647 | QString s; |
648 | QStringList account; | 648 | QStringList account; |
649 | while ( !t.eof() ) { | 649 | while ( !t.eof() ) { |
650 | account = QStringList::split(':',t.readLine()); | 650 | account = QStringList::split(':',t.readLine()); |
651 | // Hide disabled accounts and some special accounts | 651 | // Hide disabled accounts and some special accounts |
diff --git a/core/settings/security/security.cpp b/core/settings/security/security.cpp index b917aea..122dfae 100644 --- a/core/settings/security/security.cpp +++ b/core/settings/security/security.cpp | |||
@@ -79,221 +79,221 @@ using namespace Opie::Core; | |||
79 | autoLogin=false; | 79 | autoLogin=false; |
80 | } else { | 80 | } else { |
81 | autoLogin=true; | 81 | autoLogin=true; |
82 | } | 82 | } |
83 | 83 | ||
84 | cfg.setGroup("SyncMode"); | 84 | cfg.setGroup("SyncMode"); |
85 | int mode = cfg.readNumEntry("Mode",2); // Default to Sharp | 85 | int mode = cfg.readNumEntry("Mode",2); // Default to Sharp |
86 | switch( mode ) { | 86 | switch( mode ) { |
87 | case 0x01: | 87 | case 0x01: |
88 | syncModeCombo->setCurrentItem( 0 ); | 88 | syncModeCombo->setCurrentItem( 0 ); |
89 | break; | 89 | break; |
90 | case 0x02: | 90 | case 0x02: |
91 | default: | 91 | default: |
92 | syncModeCombo->setCurrentItem( 1 ); | 92 | syncModeCombo->setCurrentItem( 1 ); |
93 | break; | 93 | break; |
94 | case 0x04: | 94 | case 0x04: |
95 | syncModeCombo->setCurrentItem( 2 ); | 95 | syncModeCombo->setCurrentItem( 2 ); |
96 | break; | 96 | break; |
97 | } | 97 | } |
98 | 98 | ||
99 | 99 | ||
100 | connect(autologinToggle, SIGNAL(toggled(bool)), this, SLOT(toggleAutoLogin(bool))); | 100 | connect(autologinToggle, SIGNAL(toggled(bool)), this, SLOT(toggleAutoLogin(bool))); |
101 | connect(userlist, SIGNAL(activated(int)), this, SLOT(changeLoginName(int))); | 101 | connect(userlist, SIGNAL(activated(int)), this, SLOT(changeLoginName(int))); |
102 | connect(changepasscode,SIGNAL(clicked()), this, SLOT(changePassCode())); | 102 | connect(changepasscode,SIGNAL(clicked()), this, SLOT(changePassCode())); |
103 | connect(clearpasscode,SIGNAL(clicked()), this, SLOT(clearPassCode())); | 103 | connect(clearpasscode,SIGNAL(clicked()), this, SLOT(clearPassCode())); |
104 | connect(restoredefaults,SIGNAL(clicked()), this, SLOT(restoreDefaults())); | 104 | connect(restoredefaults,SIGNAL(clicked()), this, SLOT(restoreDefaults())); |
105 | connect(deleteentry,SIGNAL(clicked()), this, SLOT(deleteListEntry())); | 105 | connect(deleteentry,SIGNAL(clicked()), this, SLOT(deleteListEntry())); |
106 | 106 | ||
107 | loadUsers(); | 107 | loadUsers(); |
108 | updateGUI(); | 108 | updateGUI(); |
109 | 109 | ||
110 | dl = new QPEDialogListener(this); | 110 | dl = new QPEDialogListener(this); |
111 | QPEApplication::showDialog( this ); | 111 | QPEApplication::showDialog( this ); |
112 | } | 112 | } |
113 | 113 | ||
114 | Security::~Security() | 114 | Security::~Security() |
115 | { | 115 | { |
116 | } | 116 | } |
117 | 117 | ||
118 | void Security::deleteListEntry() | 118 | void Security::deleteListEntry() |
119 | { | 119 | { |
120 | syncnet->removeItem(syncnet->currentItem()); | 120 | syncnet->removeItem(syncnet->currentItem()); |
121 | } | 121 | } |
122 | 122 | ||
123 | void Security::restoreDefaults() | 123 | void Security::restoreDefaults() |
124 | { | 124 | { |
125 | QMessageBox unrecbox( | 125 | QMessageBox unrecbox( |
126 | tr("Attention"), | 126 | tr("Attention"), |
127 | tr( "<p>All user-defined net ranges will be lost."), | 127 | "<p>" + tr("All user-defined net ranges will be lost.") + "</p>", |
128 | QMessageBox::Warning, | 128 | QMessageBox::Warning, |
129 | QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::NoButton, | 129 | QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::NoButton, |
130 | 0, QString::null, TRUE, WStyle_StaysOnTop); | 130 | 0, QString::null, TRUE, WStyle_StaysOnTop); |
131 | unrecbox.setButtonText(QMessageBox::Cancel, tr("Cancel")); | 131 | unrecbox.setButtonText(QMessageBox::Cancel, tr("Cancel")); |
132 | unrecbox.setButtonText(QMessageBox::Yes, tr("Ok")); | 132 | unrecbox.setButtonText(QMessageBox::Yes, tr("Ok")); |
133 | 133 | ||
134 | if ( unrecbox.exec() == QMessageBox::Yes) | 134 | if ( unrecbox.exec() == QMessageBox::Yes) |
135 | { | 135 | { |
136 | syncnet->clear(); | 136 | syncnet->clear(); |
137 | insertDefaultRanges(); | 137 | insertDefaultRanges(); |
138 | } | 138 | } |
139 | syncModeCombo->setCurrentItem( 2 ); | 139 | syncModeCombo->setCurrentItem( 2 ); |
140 | } | 140 | } |
141 | 141 | ||
142 | void Security::insertDefaultRanges() | 142 | void Security::insertDefaultRanges() |
143 | { | 143 | { |
144 | syncnet->insertItem( tr( "192.168.129.0/24" ) ); | 144 | syncnet->insertItem( "192.168.129.0/24" ); |
145 | syncnet->insertItem( tr( "192.168.1.0/24" ) ); | 145 | syncnet->insertItem( "192.168.1.0/24" ); |
146 | syncnet->insertItem( tr( "192.168.0.0/16" ) ); | 146 | syncnet->insertItem( "192.168.0.0/16" ); |
147 | syncnet->insertItem( tr( "172.16.0.0/12" ) ); | 147 | syncnet->insertItem( "172.16.0.0/12" ); |
148 | syncnet->insertItem( tr( "10.0.0.0/8" ) ); | 148 | syncnet->insertItem( "10.0.0.0/8" ); |
149 | syncnet->insertItem( tr( "1.0.0.0/8" ) ); | 149 | syncnet->insertItem( "1.0.0.0/8" ); |
150 | syncnet->insertItem( tr( "Any" ) ); | 150 | syncnet->insertItem( tr( "Any" ) ); |
151 | syncnet->insertItem( tr( "None" ) ); | 151 | syncnet->insertItem( tr( "None" ) ); |
152 | } | 152 | } |
153 | 153 | ||
154 | void Security::updateGUI() | 154 | void Security::updateGUI() |
155 | { | 155 | { |
156 | bool empty = passcode.isEmpty(); | 156 | bool empty = passcode.isEmpty(); |
157 | 157 | ||
158 | changepasscode->setText( empty ? tr("Set passcode" ) | 158 | changepasscode->setText( empty ? tr("Set passcode" ) |
159 | : tr("Change passcode" ) ); | 159 | : tr("Change passcode" ) ); |
160 | passcode_poweron->setEnabled( !empty ); | 160 | passcode_poweron->setEnabled( !empty ); |
161 | clearpasscode->setEnabled( !empty ); | 161 | clearpasscode->setEnabled( !empty ); |
162 | 162 | ||
163 | autologinToggle->setChecked(autoLogin); | 163 | autologinToggle->setChecked(autoLogin); |
164 | userlist->setEnabled(autoLogin); | 164 | userlist->setEnabled(autoLogin); |
165 | } | 165 | } |
166 | 166 | ||
167 | 167 | ||
168 | void Security::show() | 168 | void Security::show() |
169 | { | 169 | { |
170 | //valid=FALSE; | 170 | //valid=FALSE; |
171 | setEnabled(FALSE); | 171 | setEnabled(FALSE); |
172 | SecurityBase::show(); | 172 | SecurityBase::show(); |
173 | if ( passcode.isEmpty() ) { | 173 | if ( passcode.isEmpty() ) { |
174 | // could insist... | 174 | // could insist... |
175 | //changePassCode(); | 175 | //changePassCode(); |
176 | //if ( passcode.isEmpty() ) | 176 | //if ( passcode.isEmpty() ) |
177 | //reject(); | 177 | //reject(); |
178 | } else { | 178 | } else { |
179 | if (!valid) // security passcode was not asked yet, so ask now | 179 | if (!valid) // security passcode was not asked yet, so ask now |
180 | { | 180 | { |
181 | QString pc = enterPassCode(tr("Enter passcode")); | 181 | QString pc = enterPassCode(tr("Enter passcode")); |
182 | if ( pc != passcode ) { | 182 | if ( pc != passcode ) { |
183 | QMessageBox::critical(this, tr("Passcode incorrect"), | 183 | QMessageBox::critical(this, tr("Passcode incorrect"), |
184 | tr("The passcode entered is incorrect.\nAccess denied")); | 184 | tr("The passcode entered is incorrect.\nAccess denied")); |
185 | reject(); | 185 | reject(); |
186 | return; | 186 | return; |
187 | } | 187 | } |
188 | } | 188 | } |
189 | } | 189 | } |
190 | setEnabled(TRUE); | 190 | setEnabled(TRUE); |
191 | valid=TRUE; | 191 | valid=TRUE; |
192 | } | 192 | } |
193 | 193 | ||
194 | void Security::accept() | 194 | void Security::accept() |
195 | { | 195 | { |
196 | applySecurity(); | 196 | applySecurity(); |
197 | QDialog::accept(); | 197 | QDialog::accept(); |
198 | QCopEnvelope env("QPE/System", "securityChanged()" ); | 198 | QCopEnvelope env("QPE/System", "securityChanged()" ); |
199 | } | 199 | } |
200 | 200 | ||
201 | void Security::done(int r) | 201 | void Security::done(int r) |
202 | { | 202 | { |
203 | QDialog::done(r); | 203 | QDialog::done(r); |
204 | close(); | 204 | close(); |
205 | } | 205 | } |
206 | 206 | ||
207 | void Security::selectNet(int auth_peer,int auth_peer_bits, bool update) | 207 | void Security::selectNet(int auth_peer,int auth_peer_bits, bool update) |
208 | { | 208 | { |
209 | QString sn; | 209 | QString sn; |
210 | if ( auth_peer_bits == 0 && auth_peer == 0 ) { | 210 | if ( auth_peer_bits == 0 && auth_peer == 0 ) { |
211 | sn = tr("Any"); | 211 | sn = tr("Any"); |
212 | } else if ( auth_peer_bits == 32 && auth_peer == 0 ) { | 212 | } else if ( auth_peer_bits == 32 && auth_peer == 0 ) { |
213 | sn = tr("None"); | 213 | sn = tr("None"); |
214 | } else { | 214 | } else { |
215 | sn = | 215 | sn = |
216 | QString::number((auth_peer>>24)&0xff) + "." | 216 | QString::number((auth_peer>>24)&0xff) + "." |
217 | + QString::number((auth_peer>>16)&0xff) + "." | 217 | + QString::number((auth_peer>>16)&0xff) + "." |
218 | + QString::number((auth_peer>>8)&0xff) + "." | 218 | + QString::number((auth_peer>>8)&0xff) + "." |
219 | + QString::number((auth_peer>>0)&0xff) + "/" | 219 | + QString::number((auth_peer>>0)&0xff) + "/" |
220 | + QString::number(auth_peer_bits); | 220 | + QString::number(auth_peer_bits); |
221 | } | 221 | } |
222 | 222 | ||
223 | //insert user-defined list of netranges upon start | 223 | //insert user-defined list of netranges upon start |
224 | if (update) { | 224 | if (update) { |
225 | //User selected/active netrange first | 225 | //User selected/active netrange first |
226 | syncnet->insertItem( tr( sn ) ); | 226 | syncnet->insertItem( sn ); |
227 | 227 | ||
228 | Config cfg("Security"); | 228 | Config cfg("Security"); |
229 | cfg.setGroup("Sync"); | 229 | cfg.setGroup("Sync"); |
230 | 230 | ||
231 | //set up defaults if needed, if someone manually deletes net0 he'll get a suprise hehe | 231 | //set up defaults if needed, if someone manually deletes net0 he'll get a suprise hehe |
232 | QString test = cfg.readEntry("net0",""); | 232 | QString test = cfg.readEntry("net0",""); |
233 | if (test.isEmpty()) { | 233 | if (test.isEmpty()) { |
234 | insertDefaultRanges(); | 234 | insertDefaultRanges(); |
235 | } else { | 235 | } else { |
236 | // 10 ought to be enough for everybody... :) | 236 | // 10 ought to be enough for everybody... :) |
237 | // If you need more, don't forget to edit applySecurity() as well | 237 | // If you need more, don't forget to edit applySecurity() as well |
238 | bool already_there=FALSE; | 238 | bool already_there=FALSE; |
239 | for (int i=0; i<10; i++) { | 239 | for (int i=0; i<10; i++) { |
240 | QString target, netrange; | 240 | QString target, netrange; |
241 | target.sprintf("net%d", i); | 241 | target.sprintf("net%d", i); |
242 | netrange = cfg.readEntry(target,""); | 242 | netrange = cfg.readEntry(target,""); |
243 | if (! netrange.isEmpty()){ | 243 | if (! netrange.isEmpty()){ |
244 | //make sure we have no "twin" entries | 244 | //make sure we have no "twin" entries |
245 | for (int i=0; i<syncnet->count(); i++) { | 245 | for (int i=0; i<syncnet->count(); i++) { |
246 | if ( syncnet->text(i) == netrange ) { | 246 | if ( syncnet->text(i) == netrange ) { |
247 | already_there=TRUE; | 247 | already_there=TRUE; |
248 | } | 248 | } |
249 | } | 249 | } |
250 | if (! already_there) { | 250 | if (! already_there) { |
251 | syncnet->insertItem( tr( netrange ) ); | 251 | syncnet->insertItem( netrange ); |
252 | } else { | 252 | } else { |
253 | already_there=FALSE; | 253 | already_there=FALSE; |
254 | } | 254 | } |
255 | } | 255 | } |
256 | } | 256 | } |
257 | } | 257 | } |
258 | } | 258 | } |
259 | 259 | ||
260 | for (int i=0; i<syncnet->count(); i++) { | 260 | for (int i=0; i<syncnet->count(); i++) { |
261 | if ( syncnet->text(i).left(sn.length()) == sn ) { | 261 | if ( syncnet->text(i).left(sn.length()) == sn ) { |
262 | syncnet->setCurrentItem(i); | 262 | syncnet->setCurrentItem(i); |
263 | return; | 263 | return; |
264 | } | 264 | } |
265 | } | 265 | } |
266 | odebug << "No match for \"" << sn << "\"" << oendl; | 266 | odebug << "No match for \"" << sn << "\"" << oendl; |
267 | } | 267 | } |
268 | 268 | ||
269 | void Security::parseNet(const QString& sn,int& auth_peer,int& auth_peer_bits) | 269 | void Security::parseNet(const QString& sn,int& auth_peer,int& auth_peer_bits) |
270 | { | 270 | { |
271 | auth_peer=0; | 271 | auth_peer=0; |
272 | if ( sn == tr("Any") ) { | 272 | if ( sn == tr("Any") ) { |
273 | auth_peer = 0; | 273 | auth_peer = 0; |
274 | auth_peer_bits = 0; | 274 | auth_peer_bits = 0; |
275 | } else if ( sn == tr("None") ) { | 275 | } else if ( sn == tr("None") ) { |
276 | auth_peer = 0; | 276 | auth_peer = 0; |
277 | auth_peer_bits = 32; | 277 | auth_peer_bits = 32; |
278 | } else { | 278 | } else { |
279 | int x=0; | 279 | int x=0; |
280 | for (int i=0; i<4; i++) { | 280 | for (int i=0; i<4; i++) { |
281 | int nx = sn.find(QChar(i==3 ? '/' : '.'),x); | 281 | int nx = sn.find(QChar(i==3 ? '/' : '.'),x); |
282 | auth_peer = (auth_peer<<8)|sn.mid(x,nx-x).toInt(); | 282 | auth_peer = (auth_peer<<8)|sn.mid(x,nx-x).toInt(); |
283 | x = nx+1; | 283 | x = nx+1; |
284 | } | 284 | } |
285 | uint n = (uint)sn.find(' ',x)-x; | 285 | uint n = (uint)sn.find(' ',x)-x; |
286 | auth_peer_bits = sn.mid(x,n).toInt(); | 286 | auth_peer_bits = sn.mid(x,n).toInt(); |
287 | } | 287 | } |
288 | } | 288 | } |
289 | 289 | ||
290 | void Security::loadUsers ( void ) | 290 | void Security::loadUsers ( void ) |
291 | { | 291 | { |
292 | QFile passwd("/etc/passwd"); | 292 | QFile passwd("/etc/passwd"); |
293 | if ( passwd.open(IO_ReadOnly) ) { | 293 | if ( passwd.open(IO_ReadOnly) ) { |
294 | QTextStream t( &passwd ); | 294 | QTextStream t( &passwd ); |
295 | QString s; | 295 | QString s; |
296 | QStringList account; | 296 | QStringList account; |
297 | while ( !t.eof() ) { | 297 | while ( !t.eof() ) { |
298 | account = QStringList::split(':',t.readLine()); | 298 | account = QStringList::split(':',t.readLine()); |
299 | 299 | ||