Sitecore 8 : Component locking issue - locking

I was trying to do some deep dive into locking mechanisms in Sitecore 8 and found out something strange. I have created a role "CA" that has access to both Content Editor and Exp Editor. Then I created two users: user1 and user2.
Now, I created a page "gridtest" as a test page which has a grid component. I logged in as user1 into content editor and locked the grid component in the gridtest page. Then i logged in as user2 into experience editor and locked the page "gridtest". As a result, user2 was able to add/delete component from the grid which was locked by user1.
Also, I logged in as user1 into content editor to see if the grid component was still locked and yes, it was locked by user1. How am i getting this behavior ?
Is this sitecore's behavior that is holds page level lock superior to component lock ?
All help/suggestions appreciated.

Sitecore does not allow you to lock a component. The only thing you can lock is an item.
What does it mean that you locked an item? It means that other users can not edit this particular item (except from the admin users).
In your scenario, you locked a datasource item of a component as User1 and you locked a page which has that component as User2. Now when you try to add/remove another component from that grid component as User2, you're not changing the datasource item, you're changing the page item. That's why User2 can do this.
User2 in this scenario will not be able to edit fields of the datasource item (cause it's locked by User1).
User1 in this scenario will not be able to change the page with the component (cause it's locked by User2).

Related

How the "event user count" is calculated for any event in fabric-answer dashboard

There is a user count ( Event Users) to each event in answer dashboard. How this count is changed as I can see whenever I install the app then only its increased by 1. But I want it to be updated whenever any new user sign in/sign out to my app.
And is there any way to link all events to a particular user or add user info in all events by default so that we don't need to add in each event all the info individually?
Todd from Fabric. Right now it's not possible to track individual users through Answers. You can use custom events and attributes to log these activities, but you will need to set the attributes for each event as they happen. Check out this page for more info.

How to retrieve User or Admin Images??how to clear that CDA cache memory?

I am new to pentaho CDE Design..
If ones user or Admin logged in to the pentaho dashboard.
If admin has logged in his image should be displayed.
Or user logged in to that his image should be displayed using Session ID
how to clear that CDA cache memory?
The first thing to do is to retrieve the context of the logged user :
Being in a component, you can do :
this.dashboard.context.user to get the userid
this.dashboard.context.roles to get the roles of the user : it is an array which will contain 'Administrator' if the user is an admin
Then, you can load and display the image you want.

Broadleaf commerce display some product to logged in users only

I am developing an e-commerce application using broad-leaf commerce.
My requirement is I have to add an product from login panel and display that product to only logged in users. Here few product products will be visible to all users (guest too) and few will be visible to only logged in users.
is there any way to do this?
Thanx soulfly1983 fou your try,but I found another alternative to do this without any customization. here is the full procedure..
Add a new category from admin panel.
Add a new page from admin panel (under content tab) and note the URL should be the same of category and page.
3 In the page click on rule tab.
4 Check the yes button in "Restrict to certain customers?"
Click +rule button and the select "match all" and select customer registered is equal to false
So this page will be visible to only guest users.
In the HTML body section of the rule (in general tab) write a message "you need to log in to view this stuff"
When user will log in successfully the user will not be able to the page , because we applied a rule that only logged out users can see the page so this time user will see the category and products added to that category.
am I doing right? any regarding this suggestion?
You can either extend the Product entity and add a field that will indicate whether that product will be visible to all users, or alternatively you could simply add an attribute for each product via the admin interface. Either way you will need to modify the UI logic so that it will take this additional field (or attribute) into consideration.

cacheViews:true until logout?

I like using cacheViews:true in my application...
I've made a SPA app with logout/login. Some views I have them render different views based on whether or not the current user is an administrator using the 'viewUrl' (HotTowel Durandal Inject different views based on the user)
The problem I'm having is that if you logout of an administrator account and into a normal user account all the previous views are cached so as you navigate around it brings up all the admin views (the different viewmodels activate functions aren't running)
I'm looking for an easy way to reset all these views/viewmodels when you press the logout button so the app 'starts fresh' when the next user logs in.
It's a single page application, so reloading it on logout by using window.location.reload() will make the app 'start fresh'.
With that said make sure to profile memory consumption of the app, when cacheViews: true. As long as the cached views stay in the DOM, garbage collection won't be able to reallocate memory.

Dynamic Navigation in a XAML Windows Store App

I’m just looking for a sanity check before I go down this road with my Windows Store App.
In the app, I am looking to have a navigation model which involves the following:
All users shown the initial page, and are asked to make a section of Items from a list before tapping continue.
Each Item has a group of pages associated with it – could be 2,3, whatever.
The user is then presented the pages in the order that they are associated with for each Item and in the order by which they selected the Items.
For example, say the user selects Items 2 & 3.
Item 2 has PageA, PageB, PageC associated with it
Item 3 has PageB, PageD, PageA associated with it.
The user journey for the App would be
Selection -> PageA -> PageB -> PageC -> PageB -> PageD -> PageA -> End
The approach I am thinking of going with involves a “UserService” which is persistent throughout the app and stores a list of the Items the user has selected (in order)
I would then have a “PagePlayer” page which would act as a container for the pages to be displayed and this would be loaded after the user is finished with the Selection.
The player would then display all the pages in order based on the Items that were saved in the UserService.
I personally don’t want to go down this road because I know that having Frames displaying Pages etc is generally a bad idea, it could ruin the navigation history etc.
Which pages are associated with each item I would have saved to a local file of some sort and have this loaded when a new Item is set to be displayed.
The number of items are “hard coded” and have IDs associated with them.
I am familiar with Prism for WPF but unfortunately the recently released Prism for Windows Runtime does not support modularity for using a composite approach.
Apologies for general-ness of this question, I couldn’t think of another way of asking it.
Any help would be greatly appreciated!