Changeset 10 for LATMOS-Accounts
- Timestamp:
- 02/28/09 00:59:34 (15 years ago)
- Location:
- LATMOS-Accounts
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Unix.pm
r5 r10 93 93 } 94 94 }, 95 ) or return 95 ) or return; 96 96 97 97 $self->_load_unix_file( … … 143 143 } 144 144 145 sub _save_unix_file { 146 my ($self, $file, @data) = @_; 147 open(my $handle, '>', $file) or return; 148 foreach my $line (@data) { 149 print $handle join(':', map { defined($_) ? $_ : '' } @$line) . "\n"; 150 } 151 close($handle); 152 return 1; 153 } 154 155 sub commit { 156 my ($self) = @_; 157 158 $self->_save_unix_file( 159 $self->{passwd}, 160 map {[ 161 $_, 162 $self->{users}{$_}{password} || 'x', # No empty pass !! 163 $self->{users}{$_}{uid}, 164 $self->{users}{$_}{gid}, 165 $self->{users}{$_}{gecos}, 166 $self->{users}{$_}{home}, 167 $self->{users}{$_}{shell}, 168 ]} keys %{$self->{users}} 169 ) or return; 170 171 $self->_save_unix_file( 172 $self->{group}, 173 map {[ 174 $_, 175 $self->{groups}{$_}{password} || 'x', 176 $self->{groups}{$_}{gid}, 177 join(',', keys %{$self->{groups}{$_}{users} || {}}), 178 ]} keys %{$self->{groups}} 179 ) or return; 180 181 if ($self->{use_shadow}) { 182 183 $self->_save_unix_file( 184 $self->{shadow}, 185 map {[ 186 $_, 187 $self->{users}{$_}{spassword} || 'x', 188 $self->{users}{$_}{last_changed}, 189 $self->{users}{$_}{before_ch}, 190 $self->{users}{$_}{after_ch}, 191 $self->{users}{$_}{exp_warn}, 192 $self->{users}{$_}{exp_disable}, 193 $self->{users}{$_}{disable}, 194 $self->{users}{$_}{res}, 195 ]} keys %{$self->{users}} 196 ) or return; 197 198 199 $self->_save_unix_file( 200 $self->{gshadow}, 201 map {[ 202 $_, 203 $self->{groups}{$_}{spassword} || 'x', 204 $self->{groups}{$_}{unknown}, 205 join(',', keys %{$self->{groups}{$_}{susers} || {}}), 206 ]} keys %{$self->{groups}} 207 ) or return; 208 209 } # If use shadow 210 211 1 212 } 213 145 214 1; 146 215 -
LATMOS-Accounts/t/11_bases_unix.t
r5 r10 1 1 use strict; 2 2 use warnings; 3 use Test::More tests => 7;3 use Test::More tests => 8; 4 4 use File::Temp; 5 5 … … 24 24 isa_ok($unixb, 'LATMOS::Accounts::Bases::Unix'); 25 25 26 ok($unixb->load, "Can load unix base"); 26 ok($unixb->load, "Can load unix base"); 27 ok($unixb->commit, "Can save unix base"); 27 28 28 29 system('rm', '-fr', $dir);
Note: See TracChangeset
for help on using the changeset viewer.