summaryrefslogtreecommitdiff
path: root/noncore/settings/usermanager/passwd.cpp
Side-by-side diff
Diffstat (limited to 'noncore/settings/usermanager/passwd.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/usermanager/passwd.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/noncore/settings/usermanager/passwd.cpp b/noncore/settings/usermanager/passwd.cpp
index 0a2bfba..1e98778 100644
--- a/noncore/settings/usermanager/passwd.cpp
+++ b/noncore/settings/usermanager/passwd.cpp
@@ -121,5 +121,5 @@ void Passwd::splitGroupEntry(QString &groupString) {
it++;
gr_gid=(*it++).toInt();
- gr_mem=QStringList::split(" ",(*it++));
+ gr_mem=QStringList::split(",",(*it++));
}
@@ -240,7 +240,8 @@ bool Passwd::updateGroup(int gid) {
if(groupRegExp.find((*it),0)!=-1) {
*it=QString(gr_name+":*:"+QString::number(gr_gid)+":");
- for(QStringList::Iterator member=gr_mem.begin(); member!=gr_mem.end(); ++member) {
+ for(QStringList::Iterator member=gr_mem.begin(); member!=gr_mem.end();) {
*it+=*member;
- *it+=" ";
+ ++member;
+ if(member!=gr_mem.end()) *it+=",";
}
return true;
@@ -276,5 +277,7 @@ bool Passwd::delGroup(int gid) {
bool Passwd::addGroupMember(QString groupname, QString member) {
if(!(findGroup(groupname))) return false;
- gr_mem << member;
+ QRegExp memberRegExp(QString("^%1$").arg(member));
+ QStringList templist=gr_mem.grep(memberRegExp);
+ if(templist.isEmpty()) gr_mem << member;
if(!(updateGroup(gr_gid))) return false;
return true;