trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: March 2012

Re: [trinity-devel] kcontrol Security & Privacy/Password & User Account -- can't set photo for user

From: Darrell Anderson <humanreadable@...>
Date: Fri, 9 Mar 2012 00:33:05 -0800 (PST)
>   In kcontrol /Security & Privacy/Password &
> User Account/ -- I can't set a
> photo for user. Under the Login Administration/User tab I
> selected the order for
> setting the icon to be Users,Admin which should allow the
> user to set his own
> face icon (that should allow the user to set his face here
> shouldn't it?)
> 
>   When you click on the square box to set the icon, you
> get this error:
> 
> "Your administrator has disallowed changing your
> image."  (bummer)
> 
>   Anyway, please confirm this behavior. If it is
> something controlled by kdmrc,
> then that will need to be adjusted to allow the user to set
> his own face by default.

Confirmed. Even funnier is I get the same message when trying to change the image as root. Same results in my KDE3 setup. I tried all four options in Login Manager Users tab.

The error message is found in tdebase/kdepasswd/kcm/main.cpp.

Looking at the code (and I'm a C++ newbie), I see that _facePerm can be assigned one of four string values:

userOnly
userFirst
adminFirst
adminOnly

There are four tests in main.cpp:

if ( _facePerm == adminFirst )
if ( _facePerm >= userFirst )
else if ( _facePerm <= adminOnly )
...
if ( _facePerm < userFirst )

Three of those _facePerm tests are testing against integer values rather than string values. I don't know why the tests are using >=, <=, and <. Perhaps once upon a time in the code those values were integer values.

Seems to me all of the tests should be:

if ( _facePerm == userFirst )
else if ( _facePerm == adminOnly )
if ( _facePerm != userFirst )

I created a patch. I changed >= and <= to == and < to != and tested. Guess what? For three of the options the faces picker dialog appears and only when Admin (AdminOnly) is selected did I receive the "disallowed" dialog message. :)

Tim, should I push the patch?

Darrell