Bug 150531

Summary: SCHEMA : add album password-protect feature
Product: [Applications] digikam Reporter: Vova <kv11111>
Component: Database-SchemaAssignee: Digikam Developers <digikam-bugs-null>
Status: CONFIRMED ---    
Severity: wishlist CC: axel.krebs, bg+kdex, bko, caulier.gilles, elmar.hoefner, fest.in, forgivenbyjc, gessel, iwannaberich, jasper.mackenzie, jens-bugs.kde.org, kde.e.wuuza, kdebugs, kde_bugs, laurakittyinka, mannequinZOD, mbc, michal.borsuk, Piotr.Findeisen, rene
Priority: NOR    
Version: 1.3.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Vova 2007-10-06 11:12:25 UTC
Version:           0.9.2 (using KDE KDE 3.5.7)
Installed from:    Ubuntu Packages

Sometimes I allow my friends or relatives to browse my photos with digikam. But there are some photos that I do not want to show them. This is quite common situations, AFAIK even F-spot has something like hidden tag to help with it. It would be cool if digikam will have something like it too.

For example one can implement special "hidden" tag and include images with this tag in the lists only after entering the password. Encryption of image files would also be cool but not absolutely necessary (at least hidden tag will prevent looking at hidden images accidentally).
Comment 1 Thomas Schildknecht 2007-12-17 03:40:10 UTC
This is quite the same than http://bugs.kde.org/show_bug.cgi?id=109943 (Secure password protected albums - View protection). This bug is marked as WONTFIX with the solution : "set the rights in your filesystem carefully"

I agree with the reporters that this is not a solution. This kind of problem is very common and rights settings are something for advanced users so the solution with a special tag (an option in the album properties) seems OK to me.

"Sometimes I allow my friends or relatives to browse my photos with digikam"
-> and most of the time, I think you're not very far of your friends, or at least, they will not search in your computer but just use digikam...

it's not perfect but it is not intended to provide top level security and just work in case like this one
Comment 2 Uqbar 2008-03-07 19:19:43 UTC
I think that the use case is quite common:
  you want to show pictures to someone but you don't want to accidentally show them some of the pictures (or have them accidentally pop up in search results).

I think that having the information stored in a tag, and having a way to toggle whether to show or hide the pictures would be very handy.


Encryption would be overkill, requiring non-trivial effort and serving a much narrower use case.
Comment 3 John 2008-04-05 18:19:36 UTC
Is the intention of this request to tag individual images, or whole folders?
Comment 4 Bastiaan Hovestreydt 2009-10-06 16:43:10 UTC
Allowing only to hide whole folders is too restrictive in my opinion. I often have a few embarrassing pictures among my normal ones. I would not want to move them in separate folders for this sole purpose.

For me the ideal way to handle private images would be a new tab in the config dialog, which allows me to specify certain tags and folders to be hidden by default. Images in such folders or tagged by such tags would be hidden even when searching for certain dates or tags for example. It would appear as if I deleted these folders, tags and all images associated with them.
Allowing to hide tags and folders instead of tagging images as hidden provides greater flexibility. I could have the tag "embarrassing" on the hidden list which is fine most of the time, but I could quickly add the tag "nude art" to the list if someone particularly sensitive comes over...

Password protection to show private images would be useful against guys like me, I am always tempted by the unprotected "hidden" tag of Photoshop Elements on a friends computer :-) Of course I always could start searching through his image folders but it's by far not as convenient as getting all interesting pictures with one click :-)
Comment 5 Hanno 2009-10-06 22:48:20 UTC
*** Bug 203165 has been marked as a duplicate of this bug. ***
Comment 6 Ricardo Sanz 2009-10-26 14:35:05 UTC
*** This bug has been confirmed by popular vote. ***
Comment 7 caulier.gilles 2009-10-26 14:49:57 UTC
I need to know what's users want do it with this feature...

Excepted if digiKam is the only picture viewer installed on computer, users can always switch to another application and wrap around the restriction.

I understand that users want to protect content, but for that album contents need to be encrypted as well (image data in a database). This is out of the digiKam scope.

Please light my brain (:=)))

Note : With digiKam 0.10.0, multiple root album can be managed. Why not to set a root album outside current space user with all protected items and patch digiKam to enter a password to access it. just an idea...

Gilles Caulier
Comment 8 Bastiaan Hovestreydt 2009-10-26 15:28:52 UTC
Gilles, I agree with you that any real security is overkill.
I think the general idea of this feature is to prevent people from accidentally seeing private pictures, while browsing the database.

A simple example: I have a few pictures of my girlfriend, which not everybody should see. If someone now asks me, if they can see a picture of my girlfriend, I would have to start a search for my girlfriend's tag and exclude the "private" tag by hand. With this feature I could simply use the tag tree or browse the database by date and need not worry about accidentally showing one of my private pictures.

For more ideas on how I think this should be implemented please see my comment #4. I would also try to implement it myself, if my idea is in everybody's best interest.
Comment 9 Michał Borsuk 2010-02-08 19:52:22 UTC
This is not a solution to the problem of several people broswing photos on one computer, but a very similar issue: 

My son wants to view my photos on his computer. The solution in such a case is to add the user Son to your group (`users` on non-Linux unixes, `yourusername` on Linux), and then take the "read" permission on those files and folders which you don't want them to see. 

If you have filenames to conceal, then also remove the "execute" permission from those folders. 

After that nobody will be able to access those files. 

On Windows setting the permissions is even easier, but if I remember correctly, does not "transmit" over the network as it does with NFS.
Comment 10 Fest 2010-04-18 20:57:09 UTC
*** Bug 234618 has been marked as a duplicate of this bug. ***
Comment 11 Fest 2010-04-18 21:28:52 UTC
(In reply to comment #7)
> I need to know what's users want do it with this feature...

In my case, I just want option to make tag hidden, and after that, all tagged by this tag images wouldn't show anywhere, until i'll turn "show hidden images". No need of encryption, file permission changes or etc. I don't care that this images can be shown by other image viewer. 

Point of hidden tags is ,when you want to show your vacation photos to family, you start Digikam, and want to show them "vacation" tag . But not images tagged "vacation" + "strip club". And we make "strip club" tag hidden, so family will see only respectable photos. 

About implementation: 
I suppose that adding box "private" in tag option, and "show/hide private images" button/menu option that can(not have) be passworded would be enough.
Comment 12 Mikkel Christensen 2010-04-20 11:32:50 UTC
This could be done with a "reverse" tag filter. Right now we have a tag filter where we select a few tags and only photos with those tags are shown. If we had a reverse option "show all photos except those tagged as ...", we could exclude photos tagged private. In addition, there should be an option to set tags that are hidden by default when digikam starts.

This feature could also be used for other things, such as "hide all photos tagged with 'underexposed'".
Comment 13 Jasper 2010-05-10 12:09:29 UTC
(In reply to comment #12)
> This could be done with a "reverse" tag filter. Right now we have a tag filter
> where we select a few tags and only photos with those tags are shown. If we had
> a reverse option "show all photos except those tagged as ...", we could exclude
> photos tagged private. In addition, there should be an option to set tags that
> are hidden by default when digikam starts.
> 
> This feature could also be used for other things, such as "hide all photos
> tagged with 'underexposed'".
 Nice solution, it would be good if there was a default hidden tag 'private' tho imho.

Password protected `albums' and images would be very nice tho. Only from digikam of course. system wide security is a system wide issue, not digikams.
Comment 14 caulier.gilles 2011-12-15 17:48:11 UTC
*** Bug 217709 has been marked as a duplicate of this bug. ***
Comment 15 caulier.gilles 2011-12-15 17:48:18 UTC
*** Bug 160378 has been marked as a duplicate of this bug. ***
Comment 16 Piotr Findeisen 2013-08-18 13:40:07 UTC
I'd be a last person to propose a solution for this feature request, but I find myself second or third time googling for a Linux app that can do just that -- protect selected photos / albums from accidental display.

I fully agree with previous comments -- while I can imagine digikam *could* phisically encrypt protected images on disk, I find this unnecessary (for my personal needs, of course).

Is this issue on a radar?
Comment 18 kdebugs 2014-03-03 19:35:13 UTC
Is this still on the radar?
I don't see this still on the list linked by Anguo.

I see this as potentially related to https://bugs.kde.org/show_bug.cgi?id=129132

My use case is that I have (SFW) photos of ex-girlfriends which my slightly jealous current girlfriend doesn't like to see.  As I use Digikam to manage a large (~35,000 photos) collection spread over various folders, I'd rather not use the filesystem to manage permissions.

Also, I'm happy to see these photos when using Digikam to manage my collections, but when I show photos to people I'd like to have photos of exes (or risquée photos) hidden.  This doesn't require any encryption — for that I would indeed use other tools ­— but a simple method to keep photos out of the list when displaying would be extremely useful.
This is easy in other programs.

I'll be checking out the code and seeing what I can accomplish, but I don't want to duplicate others' effort.
Comment 19 caulier.gilles 2014-04-01 09:42:05 UTC
*** Bug 332823 has been marked as a duplicate of this bug. ***
Comment 20 Jens 2017-01-22 11:03:42 UTC
Seconded. Not just for other people browsing, but also for myself.

I have a tag group called "for.." and subgroups called "All", "Family", "Friends" and "Nobody!!!". The last group shows images of family members bathing, for example.

I never show my whole library to other people. Only the respective tag groups are shown. But quite often, I miss some pictures from this tag collection and have to resort searching my whole library - and have to tell everybody to look away for a while, which is cumbersome.

A hidden option - something like "Hide images tagged with [___]" - would solve this. I could just hide the "Nobody!!!" images and people could view my library.

File system access rights or groups do not work here at all (and are the wrong approach) because they would need to apply to thumbnails and metadata as well, which Digikam saves spread over several places. Far too complicated.

Also, I am not concerned about hackers or malicious people, just about casual usage and accidental viewing of NSFF (not safe for family... ;) ) images.
Comment 21 J-o-h-n- 2017-02-02 08:09:08 UTC
This is a complex request.  Though one which probably requires more consideration.  Yes, it is true this feature could be used to hide embarrassing nudes or compromising situations.  There are other situations which could also need to be restricted from view.  Confidential information like financial, contact, security camera locations, security vulnerabilities, corporate and government intelligence.  This feature could also be used to speed navigation when dealing with large collections by being able to hide albums and individual photos.  Also ex-girlfriends or recently deceased avoidance.

There have been several approaches mentioned.  1> Changing permission or encryption, 2> using 'hidden' tag, 3> using internal flag, and 4> add to filter options.

Changing permissions or encryption (1) would require a large addition to the code to implement in any effective way.  Too this approach would cause multiple issues accessing the photos outside of digiKam.

Creating a special 'hidden' tag (2) and creating an internal flag (3) approaches both require adding sub-routines (functions, programs, whatever) to the code to control access to those photos.  With the internal flag (3) approach, there would be the added sub-routines to maintain those flags.  In either case, the database must be able to query with the ability to exclude specific criteria.

This leads me to think the adding filter options (4) would be the best approach. The most simple implementation would be to add to the filter tags the ability to exclude (NOT include) tags.  Current tag filter ability is '+tag1 AND +tag2' (intersection) and '+tag1 OR +tag2' (union).  By adding exclude (NOT include) tag filter option, this will add the ability for
'-tag1' (absolute complement)
'+tag1 AND -tag2' (relative complement)
'-tag1 AND -tag2' (complement of intersection)
'-tag1 OR -tag2' (complement of union)
In a future version, adding sub-expressions can be explored.  ie '+tag1 AND ( -tag2 OR -tag3 )' and '+tag1 OR ( -tag2 AND -tag3 )'
Though adding an exclude filter option (4) does not specifically address hiding photos, doing so could be achieved using filter logic.  This approach could later be expanded so a special hidden tag (2) or an internal flag (3) could be used to control access to hidden photos.  Using this intermediary step (4) has the added benefit of making the filter more robust.
Comment 22 Barbara Scheffner 2017-02-02 11:20:57 UTC
(In reply to J-o-h-n- from comment #21)
>  The most simple implementation would be to add to the filter tags
> the ability to exclude (NOT include) tags.

Maybe I got something wrong but that is already implemented. See context menu on a tag in the Right Sidebar, Filters tab, menu item Tag Filter Mode, option Must Not Have This Tag.
Comment 23 J-o-h-n- 2017-02-02 17:40:19 UTC
Wolfgang, you are correct.  I missed this feature.  I apologize for my mistake.

It would still be a good feature for speeding navigation and helping provide improved privacy.
Comment 24 Barbara Scheffner 2017-02-02 18:49:22 UTC
(In reply to J-o-h-n- from comment #23)

> It would still be a good feature for speeding navigation and helping provide
> improved privacy.

I agree. The Must Not Have This Tag option covers only the use case where you are the operator. And even then you might get in trouble. So an independent tag, filter or whatever that would work regardless of the other filter options would cover also use cases where you let somebody else browse your images - as long as it is not somebody like Bastiaan (Comment 4, last paragraph) ;-)
Comment 25 Bill Goodman 2017-02-11 02:13:35 UTC
I have a related but somewhat different request.

I would like to be able to launch digikam for a friend or child to browse without allowing them to make any modifications. Digikam is a great tool for searching for interesting photos in many different ways using tags, etc. But I would never allow a child to access the system this way because they could do massive damage to the tags, captions and other info in the database and photos.

I would like to have a protected mode where after "locking" digiKam, no changes to the database or photos would be allowed until a password was supplied.
Comment 26 gessel 2021-04-16 19:05:07 UTC
I'd suggest considering adding a tab to Configure->Views->"Privacy"

The use case would be, as generally described, selectively preventing the display of some subset of images in casual use of Digikam.  It would complement, for example,  either offline albums or or albums on encrypted or otherwise protected locations by preventing the display of thumbnails and meta-information for those albums.


Initially populate this tab with:

Enter a password to protect this tab with a password [             ]

Hide albums (list box with multi-select)

Do not show images meeting the below criterion [] (checkbox)

Then the same options in the filter dialog but all are interpreted as OR such that any image meeting any selected criterion is hidden and not accessible in the interface.