- i = PR_AddToGroup(NULL,uid,id);
- if (i==0 || i==PRIDEXIST) continue;
- fprintf(stderr, "Error while adding %s to %s: %s\n",
- mem, name, error_message(i));
+ /* Add user to group */
+ if (id==ANYUSERID || id==AUTHUSERID || uid==ANONYMOUSID) {
+ code = PRPERM;
+ } else if ((upos=FindByID(0,uid)) && (gpos=FindByID(0,id))) {
+ code = pr_ReadEntry(0,0,upos,&uentry);
+ if (!code) code = pr_ReadEntry(0,0,gpos,&gentry);
+ if (!code) code = AddToEntry (0, &gentry, gpos, uid);
+ if (!code) code = AddToEntry (0, &uentry, upos, id);
+ } else
+ code = PRNOENT;
+
+ if (code)
+ fprintf(stderr, "Error while adding %s to %s: %s\n",
+ mem, name, error_message(code));