author | umopapisdn <umopapisdn> | 2003-03-28 13:12:09 (UTC) |
---|---|---|
committer | umopapisdn <umopapisdn> | 2003-03-28 13:12:09 (UTC) |
commit | b271d575fa05cf570a1a829136517761bd47e69b (patch) (side-by-side diff) | |
tree | e82c8e348b3b926fb365c42454d12a56dda0adc6 | |
parent | 8e8803488d2c11b12449e785802da4a5a9adad0f (diff) | |
download | opie-b271d575fa05cf570a1a829136517761bd47e69b.zip opie-b271d575fa05cf570a1a829136517761bd47e69b.tar.gz opie-b271d575fa05cf570a1a829136517761bd47e69b.tar.bz2 |
Bugfix: (bug #0000765) Lines in /etc/passwd & /etc/group starting with a "#" are comments and should not be editable.
-rw-r--r-- | noncore/settings/usermanager/opie-usermanager.control | 2 | ||||
-rw-r--r-- | noncore/settings/usermanager/passwd.cpp | 11 | ||||
-rw-r--r-- | noncore/settings/usermanager/userdialog.cpp | 6 | ||||
-rw-r--r-- | noncore/settings/usermanager/usermanager.cpp | 26 |
4 files changed, 28 insertions, 17 deletions
diff --git a/noncore/settings/usermanager/opie-usermanager.control b/noncore/settings/usermanager/opie-usermanager.control index f971fdc..e1c7762 100644 --- a/noncore/settings/usermanager/opie-usermanager.control +++ b/noncore/settings/usermanager/opie-usermanager.control @@ -8,2 +8,2 @@ Maintainer: Ted Parnefors <zaurus@bredband.net> License: GPL -Description: User/Group manager for OPIE. +Description: User/Group manager for Opie. diff --git a/noncore/settings/usermanager/passwd.cpp b/noncore/settings/usermanager/passwd.cpp index 1e98778..f8e6d17 100644 --- a/noncore/settings/usermanager/passwd.cpp +++ b/noncore/settings/usermanager/passwd.cpp @@ -209,6 +209,11 @@ bool Passwd::searchGroup(QRegExp &groupRegExp) { } else { - groupString=(*(tempStringList.begin())); - splitGroupEntry(groupString); + for(QStringList::Iterator it=tempStringList.begin(); it!=tempStringList.end(); it++) { + groupString=*it; + if(!groupString.find(QRegExp("^#"),0)) { // Skip commented lines. + splitGroupEntry(groupString); + return true; + } + } } - return true; + return false; } diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp index 0d2122b..c06f639 100644 --- a/noncore/settings/usermanager/userdialog.cpp +++ b/noncore/settings/usermanager/userdialog.cpp @@ -46,4 +46,6 @@ UserDialog::UserDialog(int viewmode, QWidget* parent, const char* name, bool mod accounts->splitGroupEntry(*it); - new QCheckListItem(groupsListView,accounts->gr_name,QCheckListItem::CheckBox); - groupComboBox->insertItem(accounts->gr_name); + if(accounts->gr_name.find(QRegExp("^#"),0)) { // Skip commented lines. + new QCheckListItem(groupsListView,accounts->gr_name,QCheckListItem::CheckBox); + groupComboBox->insertItem(accounts->gr_name); + } } diff --git a/noncore/settings/usermanager/usermanager.cpp b/noncore/settings/usermanager/usermanager.cpp index 57efa71..1946013 100644 --- a/noncore/settings/usermanager/usermanager.cpp +++ b/noncore/settings/usermanager/usermanager.cpp @@ -128,12 +128,14 @@ void UserConfig::getUsers() { accounts->splitPasswdEntry(*it); // Split the string into it's components and store in variables in the accounts object. ("pr_name" and so on.) - new QListViewItem(usersListView,QString::number(accounts->pw_uid),accounts->pw_name,accounts->pw_gecos); - if((accounts->pw_uid>=500) && (accounts->pw_uid<65000)) { // Is this user a "normal" user ? - mytext=QString(accounts->pw_name)+" - ("+QString(accounts->pw_gecos)+")"; // The string displayed next to the icon. - if(!(mypixmap.load("/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"))) { // Is there an icon for this user? Resource::loadPixmap is caching, doesn't work. - mypixmap=Resource::loadPixmap(QString("usermanager/usericon")); // If this user has no icon, load the default icon. + if(accounts->pw_name.find(QRegExp("^#"),0)) { // Skip commented lines. + new QListViewItem(usersListView,QString::number(accounts->pw_uid),accounts->pw_name,accounts->pw_gecos); + if((accounts->pw_uid>=500) && (accounts->pw_uid<65000)) { // Is this user a "normal" user ? + mytext=QString(accounts->pw_name)+" - ("+QString(accounts->pw_gecos)+")"; // The string displayed next to the icon. + if(!(mypixmap.load("/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"))) { // Is there an icon for this user? Resource::loadPixmap is caching, doesn't work. + mypixmap=Resource::loadPixmap(QString("usermanager/usericon")); // If this user has no icon, load the default icon. + } + listviewitem=new QListViewItem(usersIconView,"",mytext); // Add the icon+text to the qiconview. + listviewitem->setPixmap(0,mypixmap); } - listviewitem=new QListViewItem(usersIconView,"",mytext); // Add the icon+text to the qiconview. - listviewitem->setPixmap(0,mypixmap); + if((accounts->pw_uid>=availableUID) && (accounts->pw_uid<65000)) availableUID=accounts->pw_uid+1; // Increase 1 to the latest know UID to get a free uid. } - if((accounts->pw_uid>=availableUID) && (accounts->pw_uid<65000)) availableUID=accounts->pw_uid+1; // Increase 1 to the latest know UID to get a free uid. } @@ -218,6 +220,8 @@ void UserConfig::getGroups() { accounts->splitGroupEntry(*it); // Split the line into its components and fill the variables of 'accounts'. (gr_name, gr_uid & gr_mem). - new QListViewItem(groupsListView,QString::number(accounts->gr_gid),accounts->gr_name); - if((accounts->gr_gid>=availableGID) && (accounts->gr_gid<65000)) availableGID=accounts->gr_gid+1; // Maybe a new free GID. + if(accounts->gr_name.find(QRegExp("^#"),0)) { // Skip commented lines. + new QListViewItem(groupsListView,QString::number(accounts->gr_gid),accounts->gr_name); + if((accounts->gr_gid>=availableGID) && (accounts->gr_gid<65000)) availableGID=accounts->gr_gid+1; // Maybe a new free GID. + } } -} +} |