I'm getting lost in the sea of allowable permissions in Drupal.
I have a content-type which has revision and workflow settings all nicely setup, but I do not want my users to be able to see these options (new revision each time automatically, etc).
From what I understand, this information goes away when you disable the 'administer node' field, however when I disable this my link for editing nodes disappears for these users.
My question is twofold then:
What is the proper way to hide this access from users
If disabling 'administer nodes' is the key, then how do I direct my
users to have access to edit their content-type once it is created?
(currently it points to admin/content/node)
I have seen solutions that involve overriding the template.php file, but I'd rather not do this.
Edit
Here is a clarification of the behavior:
Current permissions
special role
administer nodes [x]
create <custom> content [x]
delete any <custom>content [x]
delete own <custom>content [x]
edit any <custom> content [x]
So, with this snippet of settings, my users can see things like 'revision information,' 'publishing options,' etc.
I want these advanced features to NOT appear for them. What I have learned is that this can be controlled by disabling 'administer nodes.'
The problem is that when this is unchecked, my users lose the option in their menu which points to editing my content. Currently, this points to admin/content/node
Perhaps I'm misunderstanding your question as the solution I'm going to recommend is very straighforward: In the permissions page there is a permission, edit any story content, edit any page content... for all the users you want, you can assign them a role and mark the checkbox here. This will allow them to still edit the nodes and yet will avoid all the extra junk that you see in the node edit form that you get if you have the administer nodes permission checked.
Edit: As pointed out in my comment below (and by googletorp), to get something like admin/content/node you'll have to build it using VBO (Views Bulk Operations) (after disabling administer nodes)
You can create your own version of admin/content/node and tweak it, to fx only show nodes created by the user.
Doing this is quite easy with Views and Views bulk operations. I believe VBO comes with a prebuilt view that does this already, that you can tweak into your liking.
Related
I've created a Rules Link (in a View) which shows in a users dashboard using Drupal v.7.27 as CMS for a number of (similar) projects using the same functionality. The Rules Link is set to 'trigger' a rule when the user clicks "Post Content" (the Rules Link). The Rules link works fine and fires the trigger which then follows the simple conditions I've set and only because I've created Variant Panel pages for each User Type, the Rules Link only shows on the ones I've set the Panels Page Access conditions (ie Role: Content Manager).
However, I've noticed that as I'm also using the Support Ticket Module, then "Post Content" Rules Link is also showing on the top of the list of a users Support Tickets list (only for testing here, but it's shows my test comments from both user and Admin user) AND* it also shows on a link on all other Node types.
Clearly I don't want the Rules Link to show at the top or bottom of any other content type other than a Node (ie on the Post New Content Panel Page). At the moment is set within the Rules "Edit Bundle" section to show across 'none' as there is no option to force it to show ONLY on my Dashboard Panel. I'm also using the 'Render' Rules option and tried every option but to no avail after a few hours.
I've had to set the option to 'Nodes' in the Entity type which the Rules Link is attached to (because my Article data is a Node within the Panel Page) and it says quote:
'Bundles to which the link should be attached to. If left empty, the link is not restricted for any bundles' under the Bundles section.'
Furthermore, within the Views entity created (used to set the 'Rules Link' into any Node), there is no option that I can find which enforces the Rules Link to only be limited to a particular node, which in my case is a custom Page Panel. Maybe I lack current Drupal knowledge or simply have over looked an issue.
I know I need to learn PHP (yes, currently working through CodeAcademy!) but in order to get the thing working functionally, can anyone advise on what is going wrong and why the Rules Link is showing n other Node types and for a PHP novice like me at this stage, could I simply put some PHP in somewhere that would ensure the Rules Link only shows on a set Content Panel on my custom Panel Page.
I hope I have been clear enough and help at this stage is most gratefully received. Thanks in advance.
EDIT:
Actually the Rules Link is showing on all other Nodes (see above*). I've noticed that Bundles might be the key here? I've todate not used Bundles if that helps anyone?
RESOLVED
I found the source of the problem.
The answer is to ensure that the "Render Entity" is un-ticked in the option box:
"Show link when entity is rendered
If checked,the link is shown when viewing an entity to which the bundle and the visibility conditions apply. Only applies to displayed entity types and if no addition variables were added."
I hope that helps any future readers.
I'm working on some drupal installation and googled the whole day, but I can't figure out an answer to the following question:
How is it possible to alter the admin/content page in a way that specific roles are only able to see or filter out limited content types?
Please notice that I don't want to restrict node access in general, I just want to make this page less confusing for editors with different roles and tasks.
I know there is the administration views module and there I can set filter fields in the way I want. The problem with this is that I'm not able to enter the views access restrictions and so all I can do is limit the view's content types for all roles.
Can somebody give me a hint how to solve this?
Thank you very much and sorry for bad english.
One way would be to make a custom module.
In this module you would create a page with hook_menu().
https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_menu/7
Then in the page callback function that you create you load global $user and switch between the $user->roles, out putting different HTML lists of links depending on their role. If you want something a little more dynamic you can always load the various content types with node_type_get_types().
Then go into structure -> menus -> navigation and disable the default link, replacing it with the new page you created.
If you aren't 100% clear on how to do a couple of these things comment here and I will update my answer.
Simple question for all of you here dealing with Drupal 6.x...
With Drupal's Add More module, is there a way to configure my webform so that there is no limit on how many of a specific fields I can add more of?
Please see my image for example:
For example, I'd like to enable the user to add as many titles as they would like. Is that doable?
Unfortunately, it's not currently possible to add unlimited "add another" functionality with webforms. And if this functionality does become a reality someday, I doubt it will be backported to the Drupal 6 version of the module. From the webform modules author (quicksketch):
there is no progress on this subject. The ability to support multiple
values requires a tremendous amount of re-architecting, including
changes to the way CSVs are generated, analysis, the database
structure, and the UI (both for administrators and users). I wouldn't
expect this feature to be added any time soon.
See this thread for more information:
http://drupal.org/node/354381
I would suggest using a node and the CCK module plus rules and views to collect this information.
Assumptions:
Anonymous users can fill out the current form
You need some way of retrieving the data that is submitted
Regular users of the site should not be able to view submissions
Very loose directions:
Create a content type and add all of the fields that your current webform contains to it. CCK has the ability to store unlimited values out of the box. On the field settings page, inside the Global Settings fieldset, select "Unlimited" for the "Number of Values" field.
Give anonymous users permission to Create [your-new-content-type] Content on the Role Permissions page.
Using the Rules module, create a new triggered rule that fires on "Content is about to be viewed" with an condition "Content has type [your-new-content-type]" and an action of redirect to homepage (or a custom error page that you created). (Note: this is a bit of a performance hit. There are better ways to restrict access to this content type, but for the sake of this tutorial, this was the easiest to explain)
Using the Views module, create a new view with Style set to Table. Add each of the fields in [your-new-content-type] in the fields section. Under "Access" choose "role" and select the role that is assigned to your user. Add a "page" display, give it a Path and save. This is the page you will use to view submissions.
Optional:
Use the Rules module to send yourself (or the submitter) an email when a node of [your-new-content-type] is created.
I want to allow members of a Drupal website to upload their own content to the site (something like a blog post or questionnaire), but have it visible only to themselves (hidden from other members with the same role). The idea is to have them store some personal content that other members don't need to see, but that only the author member would need to see (or have access to) when using the site.
What modules would I need to use? Or how could I go about setting that up?
You can do this easily with http://drupal.org/project/content_access
I don't know if you've already solved this problem, but I recently did something similar with a shared blog in Drupal 7. I wanted users to have both private and public blog posts. I used the Save Draft module (http://drupal.org/project/save_draft) to add an extra button to the content editing screen, which I called Save (Unpublished) rather than "Save Draft" -- I used the String Overrides module to make that happen (http://drupal.org/project/stringoverrides). In the admin panel for permissions, Authenticated users were granted to right to view and edit their own unpublished items. Users could thus save their blog posts in a way that others could not see them. Then I used Views (http://drupal.org/project/views) to create a list view that used the criteria content type = blog, state = unpublished, and content author = current user. This gives users a list of their unpublished blog posts.
The https://drupal.org/project/view_own module handles this exactly the way you are looking for.
I dont know if im asking the impossible, but i want to have a tab in my user edit area that houses all blog related items (ie blog theme, blog info, user blogroll) as opposed to them being inside the user/%/edit and user/%/edit profile.
Im putting together a multi-user site and this is crucial for user-friendliness.
Thanks for any ideas!
Nothing is impossible with Drupal, but doing this would be a challenge.
With hook_form_alter you can alter any form you want. The code for this would have to go to a custom module. Then you would have to recreate the form, with a page callback, and handle the validation and submission. You can probably recreate the code from the modules that create the forms in the first place.
Alternative, you can just leave the settings at user/%/edit and other places, and just create a special form with all blog relevant info. That way the users choose where to edit their info. It will probably be a better choice, since the "blog settings" that's location at user/%/edit, will be more tied to the user, than to the blog. So when a user wants to edit some of his personal details, that's when he would want to edit those blog settings as well.
Your specific might be different, but the default setup is usually a very good default.