Author: jsuchome
Date: Mon Oct 6 16:24:06 2008
New Revision: 51876
URL: http://svn.opensuse.org/viewcvs/yast?rev=51876&view=rev
Log:
- removed Supplements from spec file (package will be recommended
by pam_fp)
- pam_fp used instead of pam_thinkfinger
- save fingerprints in user's home directory
- disabled option to import fingerprints
- 2.17.4
Modified:
trunk/fingerprint-reader/VERSION
trunk/fingerprint-reader/package/yast2-fingerprint-reader.changes
trunk/fingerprint-reader/src/FingerprintReader.ycp
trunk/fingerprint-reader/src/UsersPluginFingerprintReader.pm
trunk/fingerprint-reader/src/dialogs.ycp
trunk/fingerprint-reader/src/users_plugin_fingerprint_reader.ycp
Modified: trunk/fingerprint-reader/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/trunk/fingerprint-reader/VERSION?rev=51876&r1=51875&r2=51876&view=diff
==============================================================================
--- trunk/fingerprint-reader/VERSION (original)
+++ trunk/fingerprint-reader/VERSION Mon Oct 6 16:24:06 2008
@@ -1 +1 @@
-2.17.3
+2.17.4
Modified: trunk/fingerprint-reader/package/yast2-fingerprint-reader.changes
URL: http://svn.opensuse.org/viewcvs/yast/trunk/fingerprint-reader/package/yast2-fingerprint-reader.changes?rev=51876&r1=51875&r2=51876&view=diff
==============================================================================
--- trunk/fingerprint-reader/package/yast2-fingerprint-reader.changes (original)
+++ trunk/fingerprint-reader/package/yast2-fingerprint-reader.changes Mon Oct 6 16:24:06 2008
@@ -1,4 +1,14 @@
-------------------------------------------------------------------
+Mon Oct 6 16:05:44 CEST 2008 - jsuchome@suse.de
+
+- removed Supplements from spec file (package will be recommended
+ by pam_fp)
+- pam_fp used instead of pam_thinkfinger
+- save fingerprints in user's home directory
+- disabled option to import fingerprints
+- 2.17.4
+
+-------------------------------------------------------------------
Wed Oct 1 11:53:49 CEST 2008 - jsuchome@suse.cz
- call _exit() to exit the child process, not exit() (bnc#430229)
Modified: trunk/fingerprint-reader/src/FingerprintReader.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/fingerprint-reader/src/FingerprintReader.ycp?rev=51876&r1=51875&r2=51876&view=diff
==============================================================================
--- trunk/fingerprint-reader/src/FingerprintReader.ycp (original)
+++ trunk/fingerprint-reader/src/FingerprintReader.ycp Mon Oct 6 16:24:06 2008
@@ -51,15 +51,15 @@
/**
* Required packages for this module to operate
*/
-global list<string> required_packages = ["pam_thinkfinger"];
+global list<string> required_packages = ["pam_fp"];
// packages to install for specific architectures (see e.g. #224510)
global map arch_packages = $[
- "pam_thinkfinger" : $[
- "ia64" : [ "pam_thinkfinger-x86" ],
- "ppc64" : [ "pam_thinkfinger-64bit" ],
- "s390_64" : [ "pam_thinkfinger-32bit" ],
- "x86_64" : [ "pam_thinkfinger-32bit" ],
+ "pam_fp" : $[
+ "ia64" : [ "pam_fp-x86" ],
+ "ppc64" : [ "pam_fp-64bit" ],
+ "s390_64" : [ "pam_fp-32bit" ],
+ "x86_64" : [ "pam_fp-32bit" ],
],
];
@@ -80,11 +80,6 @@
global string import_dir = "";
/**
- * Directory for storing fingerprint files
- */
-global string bir_dir = "/etc/pam_thinkfinger";
-
-/**
* Get the list of fingerprint readers
*/
global list ReadFingerprintReaderDevices () {
@@ -96,7 +91,7 @@
}
/**
- * If pam_mount is enabled, pam_thinkfinger cannot be used (bnc#390810)
+ * If pam_mount is enabled, pam_fp cannot be used (bnc#390810)
*/
global boolean CryptedHomesEnabled () {
@@ -135,11 +130,11 @@
}
if (CryptedHomesEnabled ())
{
- // error popup (pam_thinkfinger cannot work with pam_mount)
+ // error popup (pam_fp cannot work with pam_mount)
Report::Error (_("Fingerprint reader devices cannot be used when encrypted directories are used."));
return false;
}
- use_pam = Pam::Enabled ("thinkfinger");
+ use_pam = Pam::Enabled ("fp");
modified = false;
return true;
@@ -180,7 +175,7 @@
Progress::NextStage();
boolean pam_ret = use_pam ?
- Pam::Add ("thinkfinger") : Pam::Remove ("thinkfinger");
+ Pam::Add ("fp") : Pam::Remove ("fp");
if (!pam_ret)
// Error message
Report::Error (_("Cannot write PAM settings."));
@@ -188,6 +183,7 @@
sleep(sl);
Progress::NextStage();
+ /* FIXME import into users homes?
if (use_pam && import_dir != "")
{
if (!FileUtils::Exists (bir_dir))
@@ -210,6 +206,7 @@
}
}
}
+ */
Progress::NextStage();
sleep(sl);
Modified: trunk/fingerprint-reader/src/UsersPluginFingerprintReader.pm
URL: http://svn.opensuse.org/viewcvs/yast/trunk/fingerprint-reader/src/UsersPluginFingerprintReader.pm?rev=51876&r1=51875&r2=51876&view=diff
==============================================================================
--- trunk/fingerprint-reader/src/UsersPluginFingerprintReader.pm (original)
+++ trunk/fingerprint-reader/src/UsersPluginFingerprintReader.pm Mon Oct 6 16:24:06 2008
@@ -24,7 +24,6 @@
YaST::YCP::Import ("FingerprintReader");
YaST::YCP::Import ("Pam");
YaST::YCP::Import ("SCR");
-YaST::YCP::Import ("Users");
##--------------------------------------
##--------------------- global variables
@@ -34,9 +33,6 @@
my $fingerprint_reader_available = undef;
-# path to store fingerprints
-my $bir_path = "/etc/pam_thinkfinger";
-
my $name = "UsersPluginFingerprintReader";
##----------------------------------------
@@ -65,7 +61,8 @@
# helper, check if Fingerprint Reader was already configured
sub fingerprint_reader_configured {
- return Pam->Enabled ("thinkfinger");
+# return Pam->Enabled ("fp");
+ return 1;
}
# helper function: check if Fingerprint Reader (the device) is available
@@ -81,37 +78,38 @@
# check if given user has fingerprint authentication configured
sub fingerprint_present {
- my ($data) = @_;
- my $username = $data->{"uid"};
- return 0 if !$username;
- my $org_username = $data->{"org_user"}{"uid"} || $username;
- my $org_bir_file = "$bir_path/$org_username.bir";
- return (FileUtils->Exists ($org_bir_file));
+ my ($data) = @_;
+ my $home = $data->{"homeDirectory"};
+ return 0 if !$home;
+ my $org_home= $data->{"org_user"}{"homeDirectory"} || $home;
+ return (FileUtils->IsDirectory ("$org_home/.fprint/prints"));
}
-# check if bir file name corresponds with username
+# check if fingerprint directory corresponds with username
sub adapt_fingerprint_info {
my ($config, $data) = @_;
my $username = $data->{"uid"};
- my $org_username = $data->{"org_user"}{"uid"} || $username;
- my $bir_file = $data->{"bir_file"};
- return $data if !defined $username;
- if (!defined $bir_file && $username ne $org_username) {
- # When user was only renamed, but new fingerprint was not generated,
- # there's no 'bir_file' entry in the map ->
- # backup his original bir file to tmpdir so it won't get lost and can
- # be correctly renamed in Write.
- my $org_bir_file = "$bir_path/$org_username.bir";
- if (FileUtils->Exists ($org_bir_file)) {
- my $tmpdir = Directory->tmpdir ();
- SCR->Execute (".target.bash", "/bin/cp $org_bir_file $tmpdir/$username.bir");
- $data->{"bir_file"} = $username;
- }
- }
- if ($bir_file && $bir_file ne $username) {
- $data->{"bir_file"} = $username;
+
+ my $fingerprint_dir = $data->{"_fingerprint_dir"};
+
+ # if _fingerprint_dir is not defined, plugin UI wasn't called (yet)
+ # and we don't need to solve user renaming, as the files will be moved
+ # together with a home directory
+
+ # but we need to move temporary directory if it exists and user was renamed:
+ if ($fingerprint_dir && $fingerprint_dir ne $username) {
+ my $tmp_dir = Directory->tmpdir ();
+ my $new_dir = "$tmp_dir/$username";
+ # there might be some directory related to deleted user - remove it:
+ SCR->Execute (".target.bash", "/bin/rm -rf $new_dir");
+ # move the current tmp directory
+ SCR->Execute (".target.bash",
+ "/bin/mv $tmp_dir/$fingerprint_dir $new_dir");
+ # reflect the renaming in the data hash
+ $data->{"_fingerprint_dir"} = $username;
}
+
return $data;
}
@@ -119,7 +117,7 @@
sub remove_plugin_data {
my ($config, $data) = @_;
- $data->{"bir_file"} = "";
+ $data->{"_fingerprint_dir"} = "";
$data->{"plugin_modified"} = 1;
return $data;
}
@@ -307,48 +305,38 @@
# What should be done after user is finally written (this is called only once):
-# - remove org_username.bir file,
-# but only when there is no other (new) user of that name
-# - move temporary bir file to correct location
+# - move temporary directory with fingerprints to correct location ($HOME)
BEGIN { $TYPEINFO{Write} = ["function", "boolean", "any", "any"];}
sub Write {
my ($self, $config, $data) = @_;
my $username = $data->{"uid"};
- my $org_username = $data->{"org_user"}{"uid"} || $username;
- my $bir_file = $data->{"bir_file"};
- my $org_bir_file = "$bir_path/$org_username.bir";
-
- if (($config->{"modified"} || "") eq "deleted") {
- # check if some new user doesn't have the name of the deleted one
- my $u = Users->GetUserByName ($org_username, "");
- if (!defined $u->{"bir_file"}) {
- $bir_file = "";
+ my $fingerprint_dir = $data->{"_fingerprint_dir"};
+
+ return YaST::YCP::Boolean (0) if (!$username);
+
+ if ($fingerprint_dir) {
+ my $tmp_dir = Directory->tmpdir ();
+ $fingerprint_dir= "$tmp_dir/$fingerprint_dir/.fprint";
+ my $home = $data->{"homeDirectory"};
+ if (!$home) {
+ y2warning ("home directory empty or not defined");
+ return YaST::YCP::Boolean (0);
}
- }
- return if (!$username || ! defined $bir_file);
- if ($username ne $org_username) {
- # check if there was old bir-file
- my $u = Users->GetUserByName ($org_username, "");
- # do not delete birfile when some new user was added with the name
- # of this one's original name
- if (!defined $u->{"bir_file"} && FileUtils->Exists ($org_bir_file)) {
- y2milestone ("removing old file $org_bir_file owned by $username");
- SCR->Execute (".target.bash", "/bin/rm $org_bir_file");
+ my $uid = $data->{"uidNumber"};
+ my $gid = $data->{"gidNumber"};
+
+ my $command = "/bin/chown -R $uid:$gid $fingerprint_dir";
+ my %out = %{SCR->Execute (".target.bash_output", $command)};
+ if (($out{"stderr"} || "") ne "") {
+ y2error ("error calling $command: ", $out{"stderr"} || "");
+ return YaST::YCP::Boolean (0);
+ }
+ else {
+ y2milestone ("moving $fingerprint_dir to $home/");
+ SCR->Execute (".target.bash","/bin/cp -ar $fingerprint_dir $home/");
}
- }
- elsif ($bir_file eq "" && FileUtils->Exists ($org_bir_file)) {
- # disable fingerprint authentication for this user
- # (now $org_username is same as $username)
- y2milestone ("removing file $org_bir_file for user $username");
- SCR->Execute (".target.bash", "/bin/rm $org_bir_file");
- }
- if ($bir_file) {
- my $bir_file_path = Directory->tmpdir ();
- $bir_file_path = "$bir_file_path/$bir_file.bir";
- y2milestone ("moving $bir_file_path to $bir_path/");
- SCR->Execute (".target.bash", "/bin/mv $bir_file_path $bir_path/");
}
return YaST::YCP::Boolean (1);
}
Modified: trunk/fingerprint-reader/src/dialogs.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/fingerprint-reader/src/dialogs.ycp?rev=51876&r1=51875&r2=51876&view=diff
==============================================================================
--- trunk/fingerprint-reader/src/dialogs.ycp (original)
+++ trunk/fingerprint-reader/src/dialogs.ycp Mon Oct 6 16:24:06 2008
@@ -82,10 +82,12 @@
string help_text = _("<p>
<b>Fingerprint Authentication</b><br>
The fingerprint reader configuration updates your PAM settings to enable authentication with fingerprints.</p>
-") +
+");
+ /*
// help text, cont.
sformat (_("<p>To <b>Import Fingerprint Files</b> from different installations, choose the directory where the original files are located. The files will be copied to directory %1.</p>"), FingerprintReader::bir_dir);
+ */
term con = `HBox (`HSpacing (3), `VBox (
// frame label
@@ -103,7 +105,8 @@
),
`VSpacing (0.5)
), `HSpacing (0.5))),
- `VSpacing (),
+ `VSpacing ()
+ /* FIXME: no import?
`HBox (
// textentry label
`TextEntry (`id(`import_dir),
@@ -113,6 +116,7 @@
`PushButton (`id (`browse), Label::BrowseButton ())
)
)
+ */
), `HSpacing(3));
Wizard::SetContentsButtons (caption, con, help_text,
@@ -123,26 +127,29 @@
if (!Stage::cont ())
Wizard::HideAbortButton ();
- UI::ChangeWidget (`id (`import_dir), `Enabled, use_pam);
- UI::ChangeWidget (`id (`browse), `Enabled, use_pam);
+// UI::ChangeWidget (`id (`import_dir), `Enabled, use_pam);
+// UI::ChangeWidget (`id (`browse), `Enabled, use_pam);
any ret = nil;
while (true) {
ret = UI::UserInput();
- string import_dir = (string)UI::QueryWidget (`id (`import_dir), `Value);
+// string import_dir = (string)UI::QueryWidget (`id (`import_dir), `Value);
if (ret == `pamyes || ret == `pamno)
{
use_pam = (ret == `pamyes);
+ /*
UI::ChangeWidget (`id (`import_dir), `Enabled, use_pam);
UI::ChangeWidget (`id (`browse), `Enabled, use_pam);
+ */
}
if (ret == `abort || ret == `cancel || ret == `back) {
if(ReallyAbort()) break;
else continue;
}
+ /*
else if (ret == `browse) {
string dir = UI::AskForExistingDirectory (import_dir, "");
if (dir != nil)
@@ -152,7 +159,9 @@
UI::ChangeWidget (`id(`import_dir), `Value, dir);
}
}
+ */
else if (ret == `next) {
+ /*
if (use_pam && import_dir != "" &&
!FileUtils::IsDirectory (import_dir))
{
@@ -162,6 +171,7 @@
UI::SetFocus (`id (`import_dir));
continue;
}
+ */
if (use_pam &&
!Package::InstallAll (FingerprintReader::UpdatedArchPackages (
FingerprintReader::required_packages))
@@ -169,16 +179,17 @@
{
use_pam = false;
UI::ChangeWidget (`id (`rd), `Value, `pamno);
+ /*
UI::ChangeWidget (`id (`import_dir), `Enabled, use_pam);
UI::ChangeWidget (`id (`browse), `Enabled, use_pam);
+ */
continue;
}
- if (use_pam != FingerprintReader::use_pam ||
- (use_pam && import_dir != ""))
+ if (use_pam != FingerprintReader::use_pam)
{
FingerprintReader::modified = true;
FingerprintReader::use_pam = use_pam;
- FingerprintReader::import_dir = import_dir;
+// FingerprintReader::import_dir = import_dir;
}
break;
}
Modified: trunk/fingerprint-reader/src/users_plugin_fingerprint_reader.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/fingerprint-reader/src/users_plugin_fingerprint_reader.ycp?rev=51876&r1=51875&r2=51876&view=diff
==============================================================================
--- trunk/fingerprint-reader/src/users_plugin_fingerprint_reader.ycp (original)
+++ trunk/fingerprint-reader/src/users_plugin_fingerprint_reader.ycp Mon Oct 6 16:24:06 2008
@@ -116,17 +116,6 @@
return ex;
}
- // helper function, form the string for UI from actuall data
- void replace_swipe_string () {
-
- UI::ReplaceWidget (`id (`rpstatus), `Label (
- // status message (%1, %2 are numbers)
- sformat (_("Successful swipes: %1, failed swipes: %2"),
- swipe_success, swipe_failed)
- ));
- }
-
-
void status_message (string label, string message) {
UI::ReplaceWidget (`id (`rp), `Label (label));
UI::ReplaceWidget (`id (`rpstatus), `Label (message));
@@ -173,8 +162,6 @@
}
case 3: { // FP_ENROLL_PASS
swipe_success = swipe_success + 1;
-// replace_swipe_string (); FIXME
-
status_message (
// status label
_("Enroll stage passed."),
@@ -294,7 +281,8 @@
{
// modified data to add to user
map