Ability to access Disabled Section with Direct Link
Imported From: http://groups.google.com/group/in-portal-dev/browse_thread/thread/7e0d1bd9d9613cb6#
Hi everyone,
Often these days we need to have an ability to access a disabled Section or Category Item on the Front-end without having it shown in the list among other Enabled Sections or Category Items.
There is a beautiful solution that Google Picasa has for this - Direct URL which contains some "key" for authenticating the user and showing him hidden by default content.
Example: https://picasaweb.google.com/dandrejev/MaksikGitara?authkey=Gv1sRgCJeZqfiPxL27mwE
I propose we implement the same for Section (later for Category Items).
Interface
If Status is Pending or Disabled we show a new "Access with Link" field right after (below) that Status field
New "Access with Link" field will have a Check-box (enabled by default) and a Label field (which can be copied) with full URL to that Section.
Functionality
We would need to have 2 new DB fields ( in Categories table (and later for Category Items) to store the Status and the Authentication Key. I suggest calling them as AllowAccessWithLink and AuthKey, but I am insisting on these names.
Let's use some random Alpha-numeric (case sensitive) algorithms (nothing fancy) to generate (automatically) and save this keys. Keys will NOT change! Suggested length 15-20 chars.
One of hard questions is - which of the URLs to show:
with ModRewrite or without - I believe it should be based on current website settings
which language - default one for Front-end
Need to make sure if In-Portal performs a URL redirect due to forcing the HTML URL when user visits without one we need to keep AuthKey in URL as well.
I know we might need todo some changes in the ModRewrite and Caching part, but I strongly believe it's a MUST for us to have this.
Cheers!
It's like Picasa album functionality (
https://picasaweb.google.com/aik.bold/Blogger?authkey=Gv1sRgCP7qwrLcyYmq2gE#),
where you can give access to private album with a direct link.
From technical viewpoint it will be pretty easy to implement:
1. create 2 fields in a Category table: *DirectLinkEnabled* (Yes/No) and
*DirectLinkAuthKey*
2. when someone enables direct link functionality (on category/section
editing page), then
- random alpha-numeric string will be generated and stored in
category/section record
- link to that page with freshly generated authentication key will be
displayed
3. in *checkItemStatus *method (where check is made to prevent viewing
Pending/Disabled categories/sections) also check is authentication key is
present in url and it matches one from current category/section record
4. if all matches, then show category/section and don't redirect to "no
permission" page as usual in this case
If there will be a need, then such approach could be applied to any category
item or any page on the site.