Redmine email notifications - redmine

I am starting to work with redmine and I need to configure the email notifications for users
I want users to receive emails when there is an issue assigned to a group they are part of,but I also want some specific users (like managers) to receive all emails from all issues.
And the actual configuration of redmine does not allow me to do that because is the same configuration for all users.
Any ideas?

That kind of configuration is user specific. The admin can set up the default level of notification in Administration -> Settings -> Notifications, but every user can set up a custom level in "My account".
You could, however, bulk-modify the notification setting for specific users using a database script. The notification setting appears to be in the "mail_notification" field of the "users table".
For instance, in my Redmine instance I've got the several values:
select distinct(mail_notification) from users;
only_my_events
only_assigned
selected
none
After I set up my own configuration to "For all events on all my projects", as you want, a new value 'all' appears.
Therefore, you might try a script like:
update users
set mail_notification='all'
where id in ('user1_id','user2_id',......'usern_id');
It's dirty, and I would try it first in a test environment (and backup your production database before doing it in production), but it will probably work.
Bear in mind that, even if you set up the notification configuration for a user this way, (s)he can log in later and set it up to another value. There is no way to block users from changing that parameter as far as I know.

Related

TikiWiki user management

How do I manage users of our tikiwiki?
The tiki process on the server is ran under my name. I am the user of the tikiwiki, but I am not sure I am an admin user.
Most likely not but question one is: How do I find that out?
(my Admin Menu is empty)
Some user contacted me saying her account is "Locked". It so happened that there is no one else to restore it, but me.
Can anyone help where to look? I only used my tikiwiki account to limited extent. Just wrote couple of articles. But never administered.
There is always a built in user in Tiki called "admin" and that is in a group called "Admins" which has permission to do everything, so it sounds like your user isn't in that group.
If the admin user was set up with a valid email account (and you know it and have access to it) then you can get the password reset and a link to make a new one will be emailed to that address. If you can access the installer or the database then there are various other options on how to recover the admin login here: https://doc.tiki.org/Lost+admin+password
Once you have done this and can administer the Tiki again you should add your usual user to the Admins group.
To unlock another user's account you will need to either access the user admin list (once you have admin login again) or if you can get to the database you should be able to clear the relevant field in the database directly using phpmyadmin or similar as a last resort (ask again if you need this much detail).

Is it possible to set a user's group email notification settings via API?

When a user joins a group, they are presented with options for linking their profile as well as choosing their email notification style on a screen like this:
Is it possible to set these values, in particular the email notification choices, via API?
I've found the API to add a member to a group (https://developers.google.com/apis-explorer/#p/admin/directory_v1/directory.members.insert), but not to set these meta-values pertaining to that membership.
Sorry, there is no way to set a user's mail delivery preferences via the current APIs.
So while you can't get the mail preferences for each individual user, you can get some settings associated with the group. By using the Groups Settings API as per https://developers.google.com/admin-sdk/groups-settings/manage, you should be able to return a number of parameters which list the settings of said group.
Hope this helps,

Sitecore publish site in multi site tenancy

We have two Sitecore 6.5 sites defined within one Sitecore instance so our structure is
/sitecore/content/Site1/sitecore/content/Site2
If a user selects a site in the Sitecore backend, and then Publishes the site, will Sitecore then publish just the selected site or both the sites within the Sitecore instance?
Out of the box Sitecore will publish everything from both sites on a "site publish"- you can resolve this by:
Dead simple approach: just do an "item publish" on the desired site root and include subitems.
Configure a custom publish target as described by John West: http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/05/All-About-Publishing-Targets-in-the-Sitecore-ASPNET-CMS.aspx
If you have 2 sets of users, i.e. one role for each site with the correct read/write permissions set, then you could restrict what gets published using security.
In config set Publishing.CheckSecurity to true
If you set Publishing.CheckSecurity to true, then members of the
Sitecore Client Publishing role must have both read and write access
in order to publish an item. If you additionally set the
Publishing.RequireTargetDeleteRightWhenCheckingSecurity setting in the
web.config file to true, then the user must have delete access in the
item in the target database to publish a deletion.
Of course, if a user belongs to both roles then that still means both sites will be published, you can just publish an item and sub-items
Use Default or Custom Access Rights to Control Whether Users Can Publish an Item
Publishing Security Basics

ssrs web service: basic permissions required for web service access?

I'm building a lightweight web interface to SSRS where web app users are mapped to web app roles, which in turn are mapped to SSRS users.
The reason for this convoluted scheme is not up for debate: In short, AD groups can't be used, the site uses Forms auth and there are a fixed number of roles.
Web Role | SSRS User
Admin | AdminUser
Supervisor | SuperUser
User | BasicUser
Guest | GuestUser
The goal is to enumerate all reports a user has permission to view, and allow the user to view the report with the ReportViewer control.
More importantly, it's to simplify the UX for users, both admins and the rest: preventing admins from having to use the Report Manager website (ie, selecting checkboxes rather than hand-typing which web-role-users have access to which reports), and providing a simple UI from which users can see and execute all their reports.
Everything works OK when the user is the AdminUser.
However, I'm having difficulty calling the web service when the user isn't included in a Policy on the Home/Root folder with at least the Browser SSRS role. (The permissions granted to user 'computer\username' are insufficient for performing this operation.)
This is problematic for a couple reasons:
If every user must be a Browser to connect to the web service and enumerate reports they have access to view/execute, then all users will have access to all new reports/folders by default. (Children automatically inherit new permissions)
If a report exists in a nested folder that does not inherit permissions and the user is not a browser of, but the user is a Browser on the nested report, ListChildren() will not return that report.
It seems this leaves me with 2 less than ideal options:
Don't call the web service with the different users. Instead, enumerate reports with ListChildren() using only the admin user. Then, for each report, call GetPolicies(), and from that collection of policies, determine what reports the user is able to view.
Make the call with different users. Live with the pitfalls of newly-published reports being accessible to everyone by default, until permissions are changed. Also live with the pitfalls of nested reports not showing unless the user has access to that path. If an admin wants a nested report within a folder with explicit permissions to be available to a user who can't see that folder, the policies on all ancestor folders and their children must be modified.
#1 is obviously very unwieldy and inefficient. But #2 has significant drawbacks and becomes just as onerous & inefficient when setting permissions in certain situations.
Is there a better way? Have I missed something obvious?
[edit]
A 3rd option is to query the ReportServer database directly using a query like this. This has the benefit of returning everything the user has access to, regardless of whether or not it exists in a subfolder the user cannot access (aka, cannot use the web service's ListChildren method to retrieve). However, if using AD groups, I would have to know which groups the user is a member of, whereas the web service would do this for me. This option feels like a bit of a hack to me, but it could work.
As it turns out, we ran an end-route around this issue by dropping the requirement to restrict report access by web role, and made the path we query in the web service a web.config setting that can change, thus allowing report authors to 'hide' reports in a parent folder if the need arises in the future.
The best solution would have been to query the ReportServer database directly.
However, the client changed their mind & didn't want to restrict reports based on web user role in the end, so problem solved!

Sitecore ECM how to track the same user's activities in different target audiences

We are using Sitecore 6.5, and the Email Campaign Manager 1.3.3 rev.130212 is installed.
Currently, when i add a Sitecore user, for example 'UserA' to multiple target audiences, lets say 'TargetAudience_A' and 'TargeAudience_B', after I send out these two target audiences, 'UserA' clicks the link in the email which comes from 'TargetAudience_A', then the link will bring user to the site, user visits several pages, Sitecore Analytics will be able to track 'UserA' VisitPageCount and Value, and creates the corresponding campaign of 'TargetAudience_A' with that data.
When the user opens the email sent from 'TargetAudience_B' and clicks the link, visits the site, NO campaign is created for 'TargetAudience_B' in the database, I can see all the data should use to create a new campaign for 'TargeAudience_B' is used to update campaign of 'TargetAudience_A'.
The whole link in the sent email has been modified by Sitecore, the corresponding campaign id is added, which makes the link looks like this:'httP:xx.domain.com/?ec_camp=xxxx&ec_as=xxxx'.
It seems that Sitecore just adds an Id to the url, but does not create a campaign for the 'TargeAudience_B' with that Id.
I use this sql query to check the visits data:
Select * From Visits join Automations on Visits.CampaignId = Automations.CampaignId
Where Automations.data = '{EmailTemplateId}'
the data column on Automations table is the email template id of the target audience.
Does any one know, how to track one user's activities for multiple campaigns? Is this possible to do? Or is this something which needs to be fixed by Sitecore?
Any help will be much much appreciated.
Thanks
EDIT: Sitecore does create Campaign for each target audience, but does not create Visits record for every one of them; Sitecore associates Campaign with the Visits, Sitecore cannot find\create Visits of 'TargeAudience_B', it finds the Visits of 'TargeAudience_A', for some reason it just updates the Visits record of 'TargetAudience_A'.
This does look right, does Sitecore create just one visit for a visitor a day no matter how many target audience this visitor in?
Neither target audience, the Visitor.ExternalUser or anything other than a fresh Visitor cookie will make DMS re-consider your visitor. So to answer your question, I do believe you are correct in your observation, and that this behavior is by design.
Also keep in mind; if your users click the email you send out from say their iPhone and come visit the site, they will be granted a Visitor ID. Later, when they're back home at their PC and click the same email again, they will get a fresh Visitor ID and will not be recognized by DMS as one and the same Visitor. This too, is by design.
If you want to achieve what I believe you're aiming to achieve, you're going to have to "tag" your Visitors with a key you recognize - like the email address - and then hook into the APIs and "grab" all Visitors that match your tagged email address. Not sure how well this will work with all areas of the DMS.
In my example above; if a user was triggered to enter an Engagement Plan or a State in an Engagement Plan - the "iPhone Visitor" would get attached to it - and any actions undertaken by the same person on his personal PC visitor profile on his desktop PC would not be affecting anything in this state.
Yes, it is a bit confusing - I may even have some slight details of this wrong - the DMS API changes a lot. But as far as I can determine, the above is correct and all by design.