Changeset 7

Show
Ignore:
Timestamp:
06/06/2006 04:05:35 PM (2 years ago)
Author:
malte
Message:

"changed to use Apache::htPasswd + Apache::htGroup"

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/engine/vhcs2-htuser-mngr

    r5 r7  
    135135                push_el(\@main::el, 'htuser_add_user_data()', 'Failed to add/replace user'); 
    136136                 
    137         } else
     137        } else
    138138                 
    139139                $rs = setfmode($htaccess_users_file, 'root', 'root', 0644); 
     
    163163        my $htaccess_users_file = "$apache_www_dir/$dmn_name/$htaccess_users_file_name"; 
    164164         
    165         my $htaccess_users_content = ''; 
    166          
    167         if (-e $htaccess_users_file) { 
    168                  
    169                 open(F, '<', $htaccess_users_file); 
    170                  
    171                 while (!eof(F)) { 
    172                          
    173                         my $line = readline(F); 
    174                          
    175                         $htaccess_users_content .= $line if ($line !~ /^$uname:/); 
    176                          
    177                          
    178                 } 
    179                  
    180                 close(F); 
    181                  
    182                 $rs = store_file( 
    183                                                  $htaccess_users_file, 
    184                                                  $htaccess_users_content, 
    185                                                  'root', 
    186                                                  'root', 
    187                                                  0644 
    188                                                 );  
    189                  
     165        # Open Passwordfile 
     166        $user_del = new Apache::HTpasswd({passwdFile => $htaccess_users_file}); 
     167                                                                     
     168        # Since we only want add / replace we overwrite if exists 
     169         
     170        $rs = $user_del->htDelete($uname); 
     171 
     172        if ($rs != 1) { 
     173         
     174                push_el(\@main::el, 'htuser_add_user_data()', $user_del->error); 
     175                 
     176        } else { 
     177                 
     178                $rs = setfmode($htaccess_users_file, 'root', 'root', 0644); 
     179         
     180        } 
     181         
    190182                return $rs if ($rs != 0); 
    191183                 
     
    202194# 
    203195 
    204 sub htuser_add_group_line_data { 
    205          
    206         push_el(\@main::el, 'htuser_add_group_line_data()', 'Starting...'); 
    207          
    208         my ($line, $gname, $uname) = @_; 
    209          
    210         if ($line !~ / $uname/) { 
    211                  
    212                 $line =~ s/$gname://; 
    213                  
    214                 chop($line); 
    215                  
    216                 $line = "$gname:$line $uname\n"; 
    217                  
    218         } 
    219          
    220         push_el(\@main::el, 'htuser_add_group_line_data()', 'Ending...'); 
    221          
    222         return $line;    
    223 } 
    224  
    225196sub htuser_add_group_data { 
     197        # Add users to groups 
    226198         
    227199        push_el(\@main::el, 'htuser_add_group_data()', 'Starting...'); 
     
    237209        my $htaccess_groups_file = "$apache_www_dir/$dmn_name/$htaccess_groups_file_name"; 
    238210         
    239         my $htaccess_groups_content = ''; 
    240          
    241          
    242         if (-e $htaccess_groups_file) { 
    243                  
    244                 my $gf_edit_flag = 0; 
    245                  
    246                 open(F, '<', $htaccess_groups_file); 
    247                  
    248                 while (!eof(F)) { 
    249                          
    250                         my $line = readline(F); 
    251                          
    252                         if ($line !~ /^$gname:/) { 
    253                                  
    254                                 $htaccess_groups_content .= $line; 
    255                                  
    256                         } else { 
    257                                  
    258                                 $htaccess_groups_content .= htuser_add_group_line_data($line, $gname, $uname); 
    259                                  
    260                                 $gf_edit_flag++; 
    261                                  
    262                         } 
    263                          
    264                 } 
    265                  
    266                 $htaccess_groups_content .= "$gname: $uname\n" if ($gf_edit_flag == 0); 
    267                  
    268                 close(F); 
    269                  
    270         } else { 
    271                  
    272                 $htaccess_groups_content = "$gname: $uname\n"; 
    273                  
    274         } 
    275          
    276         $rs = store_file($htaccess_groups_file, $htaccess_groups_content, 'root', 'root', 0644); 
     211        $htgroup = Apache::Htgroup->new( $htaccess_groups_file ); 
     212         
     213        if (!$foo = $htgroup->ismember($uname, $gname)) { 
     214                 
     215                $htgroup->adduser( $uname, $gname ); 
     216         
     217        } 
     218         
     219        $htgroup->save($htaccess_groups_file); 
     220         
     221        $rs = setfmode($htaccess_groups_file, 'root', 'root', 0644); 
    277222         
    278223        return $rs if ($rs != 0); 
     
    284229} 
    285230 
    286 sub htuser_del_group_line_data { 
    287          
    288         push_el(\@main::el, 'htuser_del_group_line_data()', 'Starting...'); 
    289          
    290         my ($line, $gname, $uname) = @_; 
    291          
    292         if ($line =~ / $uname/) { 
    293                  
    294                 $line =~ s/$gname://; 
    295                  
    296                 chop($line); 
    297                  
    298                 $line =~ s/ $uname//; 
    299                  
    300                 $line = "$gname:$line\n" if (length($line) > 0); 
    301                  
    302         } 
    303          
    304         push_el(\@main::el, 'htuser_del_group_line_data()', 'Ending...'); 
    305          
    306         return $line;    
    307 } 
    308231 
    309232sub htuser_del_group_data { 
     233        # delete users from groups 
    310234         
    311235        push_el(\@main::el, 'htuser_del_group_data()', 'Starting...'); 
     
    321245        my $htaccess_groups_file = "$apache_www_dir/$dmn_name/$htaccess_groups_file_name"; 
    322246         
    323         my $htaccess_groups_content = ''; 
    324          
    325         if (-e $htaccess_groups_file) { 
    326                  
    327                 open(F, '<', $htaccess_groups_file); 
    328                  
    329                 while (!eof(F)) { 
    330                          
    331                         my $line = readline(F); 
    332                          
    333                         if ($line !~ /^$gname:/) { 
    334                                  
    335                                 $htaccess_groups_content .= $line; 
    336                                  
    337                         } else { 
    338                                  
    339                                 $htaccess_groups_content .= htuser_del_group_line_data($line, $gname, $uname); 
    340                                  
    341                         } 
    342                          
    343                 } 
    344                  
    345                 close(F); 
    346                  
    347                 $rs = store_file($htaccess_groups_file, $htaccess_groups_content, 'root', 'root', 0644); 
    348                  
    349                 return $rs if ($rs != 0); 
    350                  
    351         }  
    352          
     247        $htgroup = Apache::Htgroup->new( $htaccess_groups_file ); 
     248         
     249        if ($foo = $htgroup->ismember($uname, $gname)) { 
     250                 
     251                $htgroup->deleteuser( $uname, $gname ); 
     252         
     253        } 
     254         
     255        $htgroup->save($htaccess_groups_file); 
     256         
     257        $rs = setfmode($htaccess_groups_file, 'root', 'root', 0644); 
     258         
     259        return $rs if ($rs != 0); 
     260                 
    353261        push_el(\@main::el, 'htuser_del_group_data()', 'Ending...'); 
    354262         
     
    433341        return 0; 
    434342         
    435 } 
    436  
    437 sub htuser_del_user_data { 
    438  
    439         push_el(\@main::el, 'htuser_del_user_data()', 'Starting...'); 
    440  
    441         my ($dmn_name, $uname, $upass) = @_; 
    442  
    443         my $rs = undef; 
    444  
    445         my $htaccess_users_file_name = $main::cfg{'HTACCESS_USERS_FILE_NAME'}; 
    446  
    447         my $apache_www_dir = $main::cfg{'APACHE_WWW_DIR'}; 
    448  
    449         my $htaccess_users_file = "$apache_www_dir/$dmn_name/$htaccess_users_file_name"; 
    450  
    451         my $htaccess_users_content = ''; 
    452  
    453         if (-e $htaccess_users_file) { 
    454  
    455                 open(F, '<', $htaccess_users_file); 
    456  
    457                 while (!eof(F)) { 
    458  
    459                         my $line = readline(F); 
    460  
    461                         $htaccess_users_content .= $line if ($line !~ /^$uname:/); 
    462  
    463  
    464                 } 
    465  
    466                 close(F); 
    467  
    468                 $rs = store_file($htaccess_users_file, $htaccess_users_content, 'root', 'root', 0644 
    469 ); 
    470  
    471                 return $rs if ($rs != 0); 
    472  
    473         } 
    474  
    475         push_el(\@main::el, 'htuser_del_user_data()', 'Ending...'); 
    476  
    477         return 0; 
    478  
    479343} 
    480344 
     
    920784         
    921785                # 
    922                 # continue with signle user; 
     786                # continue with single user; 
    923787                # 
    924788