View | Details | Raw Unified | Return to bug 136267
Collapse All | Expand All

(-)Users.pm (-14 / +9 lines)
Lines 3260-3272 Link Here
3260
3260
3261
        # update the affected groups
3261
        # update the affected groups
3262
        foreach my $group (keys %grouplist) {
3262
        foreach my $group (keys %grouplist) {
3263
            %group_in_work = %{$self->GetGroupByName ($group, $type)};
3263
            %group_in_work = %{$self->GetGroupByName ($group, "")};
3264
            if (%group_in_work && $self->AddUserToGroup ($username)) {
3264
            if (%group_in_work && $self->AddUserToGroup ($username)) {
3265
                $self->CommitGroup ();
3265
                $self->CommitGroup ();
3266
	    }
3266
	    }
3267
        };
3267
        };
3268
        # add user to his default group (updating only cache variables)
3268
        # add user to his default group (updating only cache variables)
3269
        %group_in_work = %{$self->GetGroupByName ($groupname, $type)};
3269
        %group_in_work = %{$self->GetGroupByName ($groupname, "")};
3270
        if (%group_in_work) {
3270
        if (%group_in_work) {
3271
            $group_in_work{"what"}	= "user_change_default";
3271
            $group_in_work{"what"}	= "user_change_default";
3272
            $group_in_work{"more_users"}{$username}	= 1;
3272
            $group_in_work{"more_users"}{$username}	= 1;
Lines 3286-3298 Link Here
3286
        if (!defined $user{"modified"}) {
3286
        if (!defined $user{"modified"}) {
3287
            $user{"modified"}	= "edited";
3287
            $user{"modified"}	= "edited";
3288
	}
3288
	}
3289
	my $group_type	= $type;
3290
	if ($type eq "nis") {
3291
	    $group_type	= "system";
3292
	}
3293
        # check the change of additional group membership
3289
        # check the change of additional group membership
3294
        foreach my $group (keys %grouplist) {
3290
        foreach my $group (keys %grouplist) {
3295
            %group_in_work = %{$self->GetGroupByName ($group, $group_type)};
3291
            %group_in_work = %{$self->GetGroupByName ($group, "")};
3296
            if (%group_in_work) {
3292
            if (%group_in_work) {
3297
	        # username changed - remove org_username
3293
	        # username changed - remove org_username
3298
	        if ($org_username ne $username) {
3294
	        if ($org_username ne $username) {
Lines 3307-3313 Link Here
3307
        # check if user was removed from some additional groups
3303
        # check if user was removed from some additional groups
3308
	if (defined $user{"removed_grouplist"}) {
3304
	if (defined $user{"removed_grouplist"}) {
3309
            foreach my $group (keys %{$user{"removed_grouplist"}}) {
3305
            foreach my $group (keys %{$user{"removed_grouplist"}}) {
3310
	        %group_in_work = %{$self->GetGroupByName ($group, $type)};
3306
	        %group_in_work = %{$self->GetGroupByName ($group, "")};
3311
	        if (%group_in_work &&
3307
	        if (%group_in_work &&
3312
		    $self->RemoveUserFromGroup ($org_username)) {
3308
		    $self->RemoveUserFromGroup ($org_username)) {
3313
		    $self->CommitGroup ();
3309
		    $self->CommitGroup ();
Lines 3322-3328 Link Here
3322
	}
3318
	}
3323
        if ($username ne $org_username && $groupname eq $org_groupname) {
3319
        if ($username ne $org_username && $groupname eq $org_groupname) {
3324
            # change the user's name in his default group
3320
            # change the user's name in his default group
3325
            %group_in_work	= %{$self->GetGroupByName ($groupname, $type)};
3321
            %group_in_work	= %{$self->GetGroupByName ($groupname, "")};
3326
            if (%group_in_work) {
3322
            if (%group_in_work) {
3327
                $group_in_work{"what"}	= "user_change_default";
3323
                $group_in_work{"what"}	= "user_change_default";
3328
                delete $group_in_work{"more_users"}{$org_username};
3324
                delete $group_in_work{"more_users"}{$org_username};
Lines 3333-3346 Link Here
3333
        elsif ($groupname ne $org_groupname) {
3329
        elsif ($groupname ne $org_groupname) {
3334
            # note: username could be also changed!
3330
            # note: username could be also changed!
3335
            # 1. remove the name from original group ...
3331
            # 1. remove the name from original group ...
3336
            %group_in_work = %{$self->GetGroupByName ($org_groupname, $type)};
3332
            %group_in_work = %{$self->GetGroupByName ($org_groupname, "")};
3337
            if (%group_in_work) {
3333
            if (%group_in_work) {
3338
                $group_in_work{"what"}	= "user_change_default";
3334
                $group_in_work{"what"}	= "user_change_default";
3339
                delete $group_in_work{"more_users"}{$org_username};
3335
                delete $group_in_work{"more_users"}{$org_username};
3340
                $self->CommitGroup ();
3336
                $self->CommitGroup ();
3341
            }
3337
            }
3342
            # 2. and add it to the new one:
3338
            # 2. and add it to the new one:
3343
            %group_in_work	= %{$self->GetGroupByName ($groupname, $type)};
3339
            %group_in_work	= %{$self->GetGroupByName ($groupname, "")};
3344
            if (%group_in_work) {
3340
            if (%group_in_work) {
3345
                $group_in_work{"what"}	= "user_change_default";
3341
                $group_in_work{"what"}	= "user_change_default";
3346
                $group_in_work{"more_users"}{$username}	= 1;
3342
                $group_in_work{"more_users"}{$username}	= 1;
Lines 3376-3395 Link Here
3376
        # prevent the add & delete of the same user
3372
        # prevent the add & delete of the same user
3377
        if (!defined $user{"modified"} || $user{"modified"} ne "added") {
3373
        if (!defined $user{"modified"} || $user{"modified"} ne "added") {
3378
            $user{"modified"} = "deleted";
3374
            $user{"modified"} = "deleted";
3379
#	    $removed_users{$type}{$uid}	= \%user;
3380
	    $removed_users{$type}{$username}	= \%user;
3375
	    $removed_users{$type}{$username}	= \%user;
3381
        }
3376
        }
3382
3377
3383
        # check the change of group membership
3378
        # check the change of group membership
3384
        foreach my $group (keys %grouplist) {
3379
        foreach my $group (keys %grouplist) {
3385
            %group_in_work = %{$self->GetGroupByName ($group, $type)};
3380
            %group_in_work = %{$self->GetGroupByName ($group, "")};
3386
            if (%group_in_work &&
3381
            if (%group_in_work &&
3387
	        $self->RemoveUserFromGroup ($org_username)) {
3382
	        $self->RemoveUserFromGroup ($org_username)) {
3388
                $self->CommitGroup();
3383
                $self->CommitGroup();
3389
	    }
3384
	    }
3390
        };
3385
        };
3391
        # remove user from his default group -- only cache structures
3386
        # remove user from his default group -- only cache structures
3392
        %group_in_work		= %{$self->GetGroupByName ($groupname, $type)};
3387
        %group_in_work		= %{$self->GetGroupByName ($groupname, "")};
3393
	if (%group_in_work) {
3388
	if (%group_in_work) {
3394
	    $group_in_work{"what"}	= "user_change_default";
3389
	    $group_in_work{"what"}	= "user_change_default";
3395
            delete $group_in_work{"more_users"}{$username};
3390
            delete $group_in_work{"more_users"}{$username};

Return to bug 136267