drupal how to allow logged in user to edit specific content node? - drupal

I have a Drupal 7 site with single SSO via the LDAP module, which allows us to run the site as n Intranet and users that hit the site with IE will get automatically authenticated using their active directory credentials.
I have a personnel directory content type that holds a list of all of our employees and some of their stats (photo, email, phone number, etc.).
The problem I want to allow the logged in user to be able to edit the node in the personnel directory page that represents them, but because there is no relation between the logged in user and the nodes under the personnel directory content type I am not sure how to go about allowing users to edit their own entries?
The personnel directory page is automatically populated/updated via feeds (it looks at our AD, and pulls down users and updates them if it detects updates in AD meta data).
Somehow I need to tie the logged in user to the specific node, any idea how I could automate this as there are over 300+ nodes/users.
Ultimately, I'd like to have a "edit personnel bio" link that they can link, that will link based on their [current logged in user ID] it will allow them to edit the correct node in the [personnel directory] content type.
I hope this was clear enough to point me to some direction.
Thank you.

basically you want to create a user "role". Then in your permissions page (the one with 1000 checkboxes) you can add edit access to your "personnel bio" content type (or fields) for just that user role.
Then in your template you provide the user a link to the same page with /edit in the url.

Make sure the user has permissions to edit the node of that type. Upon creation of the node via feeds, create a rule (use the Rules module https://drupal.org/project/RULES) to change the creator of the node to that user's uid.
Add another field in the user's account to match their AD username to tie them together. To do this, create a module as seen at https://drupal.stackexchange.com/questions/8253/how-to-add-extra-fields-to-user-profile

Related

Create limited super admin on multisite (Wordpress)

Is it possible to create a user on a multisite that has access to all the sites in the network, but has limited permissions to for example install plugins and view/edit certain settings? The only thing I want this user to be able to do is to jump in between sites and be able to edit the content of these, without having to log in and out with different accounts on each of the sites.
The most optimal solution would be if I could create a new user role based on the super admin role, and then deactivate permissions from there. But from what I see in the admin interface of the network, I seem to only be able to give a user the super admin role and no other role, except for if I create a user on any of the specific "sub sites" in the network.
Any ideas for how to do this?
I totally misunderstood how this works. I just figured out that I have to do the following:
Create a user on the network. From what I understand, I should not assign the Super Admin role to this user if I don't want the user to have access to the network settings.
Go to Users > Add New on the sites where I want this user to have access and enter the email or username of the user in the input field under Add Existing User.
Choose the Role that this user should have on the specific site.
Click Add Existing User
The user can now login to either one of the sites where the user was added and can switch in between the sites in the admin bar, without having access to the network admin area.
For now I selected the Editor role for this user to limit access to plugins and other settings that only the admin should have access to. If I want to modify the capabilities of the user I could either do it manually or just install a plugin like User Role Editor to do this.

How to display all the registered profiles in a wordpress site?

I am told to make a wordpress site where i will be having a registration form.. Once the registration is done. The person will be logging in. And on one page say 'collogues', the logged in person will be able to see all the other registered people's photo and their names. And if he opens that photo, the profile will appear. (Profile details taken while registration).
Just like a social media but no friend request, no comments nothing else. Not even algos to match the gender.
Simple login and you will be able to see other people's profile pages and probably edit your profile every now and then....
Your task seems simple. You may use Members plugin to build login system and then upon logging users in you can fetch all users from wp_users table and link their profile to single.php, where its displays all user data.

Drupal 7: Reveal field to anonymous user after an email validation

This is the requirement for a Drupal 7 site -
The site will not have any registration facility for visitors. It is basically a content oriented site with all content created by content editors.
All content are visible to anonymous users.
There is specific content type (consider "document") that will have a file upload. Users can download the files.
The "document" nodes will not reveal the file download link when an anonymous user views the node for the first time. Rather it will ask the user to input his email address.
Once the user inputs a valid email address, the link to the file is revealed.
There will be a log record of the user input email addresses.
I want to know if there is a contributed module that can already do this. If not, is it possible to achieve this by using a combination of contributed modules? If even that is not possible, what could be the best way to achieve this?

View to list all nodes

In my drupal installation I have created two type of nodes.
Free access (non - registered users)
Only member access (registered users)
I used a content access module to set permissions.
Now I have created a list of these nodes using views, the problem is that when free user sees that list, they are not shown the list of nodes accessible only to registered users.
I want to be able to show all the list of nodes, regardless of who is seeing them, but when a non-registered clicks on node not be accessed by him, they will be taken to login page.
Please see click here for the solution.
The Premium module allows to show teasers to all users and the full body only to privileged users.

iCal for authenticated users

I am using the calendar module with its iCal support for Drupal 6. I have made my event type which appears on the iCal feed. However, I want to make the event content type private, so only authenticated users can read it. By doing this they will not show on the iCal feed. Is there any way that I could get the iCal feed to still show these events?
I agree with calebthorne that normally a feed is public; I can understand the need of making a feed public for a group of users, and not to the anonymous users.
If the feed is created by a view, then you can change the view, and restrict its access to the users you want.
As you can see in the screenshot, you can restrict the access to the users with a particular permission, or to the users with a specific role (authenticated user is one of them).
Hmmm... I would give the Node Access module a look. I use this module to restrict access to content based on content type. I have never tested whether this works in conjunction with the Calendar module but it is worth a shot.
Some more details about the Node Access module (from its project page):
Nodeaccess is a Drupal access control module which provides view, edit and delete access to nodes. Users with the 'grant node permissions' permission will have a grant tab on node pages which allows them to grant access to that node by user or role. Administrators can set default access controls per content type, and also define which roles are available to grant permissions to on the node grants tab.
The upshot is, this module allows you to do things like 'node 123 can be viewed by authenticated users and edited by admin users and joeuser'. As an added bonus, update and delete permissions are separated, so you can make sure users with edit permissions cannot accidentally delete pages.

Resources