You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(40) |
Sep
(2) |
Oct
(40) |
Nov
(12) |
Dec
(79) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(62) |
Feb
(12) |
Mar
(19) |
Apr
(15) |
May
(22) |
Jun
(20) |
Jul
(23) |
Aug
(28) |
Sep
(74) |
Oct
(74) |
Nov
(80) |
Dec
(203) |
2003 |
Jan
(65) |
Feb
(160) |
Mar
(161) |
Apr
(105) |
May
(87) |
Jun
(48) |
Jul
(71) |
Aug
(130) |
Sep
(112) |
Oct
(206) |
Nov
(108) |
Dec
(84) |
2004 |
Jan
(309) |
Feb
(128) |
Mar
(246) |
Apr
(266) |
May
(449) |
Jun
(239) |
Jul
(184) |
Aug
(152) |
Sep
(151) |
Oct
(305) |
Nov
(193) |
Dec
(167) |
2005 |
Jan
(182) |
Feb
(248) |
Mar
(191) |
Apr
(256) |
May
(152) |
Jun
(55) |
Jul
(120) |
Aug
(103) |
Sep
(125) |
Oct
(85) |
Nov
(85) |
Dec
(64) |
2006 |
Jan
(165) |
Feb
(148) |
Mar
(120) |
Apr
(85) |
May
(100) |
Jun
(69) |
Jul
(86) |
Aug
(157) |
Sep
(103) |
Oct
(101) |
Nov
(134) |
Dec
(178) |
2007 |
Jan
(110) |
Feb
(67) |
Mar
(224) |
Apr
(108) |
May
(87) |
Jun
(40) |
Jul
(64) |
Aug
(68) |
Sep
(70) |
Oct
(82) |
Nov
(48) |
Dec
(74) |
2008 |
Jan
(74) |
Feb
(102) |
Mar
(47) |
Apr
(29) |
May
(40) |
Jun
(18) |
Jul
(19) |
Aug
(88) |
Sep
(69) |
Oct
(43) |
Nov
(13) |
Dec
(25) |
2009 |
Jan
(49) |
Feb
(64) |
Mar
(47) |
Apr
(38) |
May
(23) |
Jun
(41) |
Jul
(72) |
Aug
(49) |
Sep
(44) |
Oct
(35) |
Nov
(7) |
Dec
(56) |
2010 |
Jan
(171) |
Feb
(42) |
Mar
(31) |
Apr
(68) |
May
(26) |
Jun
(8) |
Jul
(36) |
Aug
(28) |
Sep
(31) |
Oct
(40) |
Nov
(3) |
Dec
(5) |
2011 |
Jan
(2) |
Feb
(5) |
Mar
(6) |
Apr
(12) |
May
(6) |
Jun
(15) |
Jul
(17) |
Aug
(7) |
Sep
(13) |
Oct
(30) |
Nov
(17) |
Dec
(4) |
2012 |
Jan
(5) |
Feb
(8) |
Mar
(7) |
Apr
(11) |
May
(5) |
Jun
|
Jul
(15) |
Aug
(25) |
Sep
(23) |
Oct
(18) |
Nov
(14) |
Dec
(12) |
2013 |
Jan
(18) |
Feb
(8) |
Mar
(9) |
Apr
|
May
|
Jun
(6) |
Jul
(18) |
Aug
(6) |
Sep
(2) |
Oct
(1) |
Nov
(2) |
Dec
(16) |
2014 |
Jan
(13) |
Feb
(22) |
Mar
(10) |
Apr
|
May
(8) |
Jun
(23) |
Jul
(17) |
Aug
(3) |
Sep
(22) |
Oct
(34) |
Nov
(4) |
Dec
(2) |
2015 |
Jan
(5) |
Feb
|
Mar
(11) |
Apr
(3) |
May
(19) |
Jun
(33) |
Jul
(11) |
Aug
(9) |
Sep
|
Oct
|
Nov
(15) |
Dec
(7) |
2016 |
Jan
(13) |
Feb
(9) |
Mar
(5) |
Apr
(8) |
May
(2) |
Jun
(4) |
Jul
(1) |
Aug
|
Sep
(8) |
Oct
(1) |
Nov
|
Dec
(1) |
2017 |
Jan
(11) |
Feb
(8) |
Mar
(8) |
Apr
(7) |
May
|
Jun
(7) |
Jul
|
Aug
(9) |
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
(8) |
Sep
(25) |
Oct
(4) |
Nov
(2) |
Dec
(3) |
2019 |
Jan
(20) |
Feb
(26) |
Mar
(18) |
Apr
(2) |
May
(5) |
Jun
(1) |
Jul
(9) |
Aug
(8) |
Sep
(8) |
Oct
(21) |
Nov
(8) |
Dec
(1) |
2020 |
Jan
|
Feb
(3) |
Mar
(2) |
Apr
(15) |
May
(6) |
Jun
(2) |
Jul
(7) |
Aug
(5) |
Sep
(4) |
Oct
|
Nov
(5) |
Dec
(5) |
2021 |
Jan
|
Feb
(15) |
Mar
(50) |
Apr
(16) |
May
(22) |
Jun
(20) |
Jul
(5) |
Aug
(19) |
Sep
(1) |
Oct
(1) |
Nov
(42) |
Dec
(16) |
2022 |
Jan
(9) |
Feb
(5) |
Mar
(2) |
Apr
(6) |
May
(2) |
Jun
(10) |
Jul
(15) |
Aug
(9) |
Sep
(32) |
Oct
|
Nov
(14) |
Dec
(10) |
2023 |
Jan
(7) |
Feb
(6) |
Mar
(11) |
Apr
(16) |
May
(14) |
Jun
(7) |
Jul
(17) |
Aug
(1) |
Sep
|
Oct
(44) |
Nov
(24) |
Dec
(13) |
2024 |
Jan
(1) |
Feb
(25) |
Mar
(9) |
Apr
(10) |
May
(7) |
Jun
(8) |
Jul
(5) |
Aug
|
Sep
(2) |
Oct
(1) |
Nov
|
Dec
|
From: Tonu M. <tm...@um...> - 2023-10-10 16:10:33
|
The addition of the detector worked perfectly. Thank you! On Tue, Oct 10, 2023 at 10:42 AM John P. Rouillard <ro...@cs...> wrote: > Hello Tonu: > > In message <CABDFm8gEASbHiyE1dEe3xfVnD= > T_8...@ma...> > , > Tonu Mikk via Roundup-users writes: > >I would like to configure my tracker to email me every time a new issue is > >created. I added my email address to the dispatcher line in the config.ini > >file, but that didn't work. I know it is documented and I searched, but I > >couldn't find the solution. > > I shared your expectation about dispatcher. Then I looked into it and > searched the code. The key part of the dispatcher is: > > # The 'dispatcher' is a role that can get notified > # of new items to the database. > # It is used by the ERROR_MESSAGES_TO config setting. > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > the same wording shows up in reference.txt (formerly part of > customizing.txt). > > In doc/whatsnew-0.7.txt > > A new config option has been added that specifies the email address of > a "dispatcher" role. This email address acts as a central sentinel for > issues coming into the system. You can configure it so that all e-mail > error messages get bounced to them, them and the user in question, or > just the user (default). > > which explains it a little better, but still confusing. "issue" in > this case is not an issue as in 'an issue tracked by Roundup'. Instead > issue here means an issue/failure in email delivery or other bounce > message. > > Indeed the only reference in the code to this setting is in > bounce_message() in mailer.py. > > I'll see what I can do to clarify the wording on that. > > None of this solves your "issue" (hmm, irony...). > > However there is a "newissuecopy" reactor provided in the source tree > in the detectors directory. It can also be retrieved from source > control at: > > > https://sourceforge.net/p/roundup/code/ci/default/tree/detectors/newissuecopy.py > > It should be as easy as putting the file in the detectors directory of > your tracker's home directory. Then change "team@team.host" to your > address. Finally restart the tracker. > > It looks like the file works under both python 2 and 3, so you should > be good. > > Have a great day. > > -- > -- rouilj > John Rouillard > =========================================================================== > My employers don't acknowledge my existence much less my opinions. > -- Tonu Mikk Developer | Disability Resource Center | disability.umn.edu University of Minnesota | umn.edu tm...@um... Pronouns: He/Him |
From: John P. R. <ro...@cs...> - 2023-10-10 15:37:05
|
Hello Tonu: In message <CABDFm8gEASbHiyE1dEe3xfVnD=T_8...@ma...> , Tonu Mikk via Roundup-users writes: >I would like to configure my tracker to email me every time a new issue is >created. I added my email address to the dispatcher line in the config.ini >file, but that didn't work. I know it is documented and I searched, but I >couldn't find the solution. I shared your expectation about dispatcher. Then I looked into it and searched the code. The key part of the dispatcher is: # The 'dispatcher' is a role that can get notified # of new items to the database. # It is used by the ERROR_MESSAGES_TO config setting. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same wording shows up in reference.txt (formerly part of customizing.txt). In doc/whatsnew-0.7.txt A new config option has been added that specifies the email address of a "dispatcher" role. This email address acts as a central sentinel for issues coming into the system. You can configure it so that all e-mail error messages get bounced to them, them and the user in question, or just the user (default). which explains it a little better, but still confusing. "issue" in this case is not an issue as in 'an issue tracked by Roundup'. Instead issue here means an issue/failure in email delivery or other bounce message. Indeed the only reference in the code to this setting is in bounce_message() in mailer.py. I'll see what I can do to clarify the wording on that. None of this solves your "issue" (hmm, irony...). However there is a "newissuecopy" reactor provided in the source tree in the detectors directory. It can also be retrieved from source control at: https://sourceforge.net/p/roundup/code/ci/default/tree/detectors/newissuecopy.py It should be as easy as putting the file in the detectors directory of your tracker's home directory. Then change "team@team.host" to your address. Finally restart the tracker. It looks like the file works under both python 2 and 3, so you should be good. Have a great day. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: Tonu M. <tm...@um...> - 2023-10-10 14:10:06
|
Hello, I would like to configure my tracker to email me every time a new issue is created. I added my email address to the dispatcher line in the config.ini file, but that didn't work. I know it is documented and I searched, but I couldn't find the solution. Thanks for any pointers! |
From: John P. R. <ro...@cs...> - 2023-10-09 19:56:10
|
Hi Norbert: In message <DU2PR01MB8557698E358F8F776984B782E8CEA@DU2PR01MB8557.eurprd01.prod. exchangelabs.com>, SCHLEMMER Norbert writes: >.) docker inspect <image id> > >"Architecture": "arm64", > >"Os": "linux", > >-> seems to be ok > > docker run -it -e SHELL_DEBUG=1 -p 127.0.0.1:8917:8080 --name \ > roundup_demo -v $PWD:/usr/src/app/tracker \ > rounduptracker/roundup-development:multi shell > > > >-> image started, logs below Logs look fine. >Which file are needed at $PWD ? [...] > >+ '[' true '=' false ] > >+ exec /bin/sh Normal startup and you had a shell. So it looks like it's a good image at least. >~ $ ls -lrt > >total 16 > >-rwxr-xr-x 1 root root 291 Jul 19 03:12 roundup_healthcheck > >-rwxr-xr-x 1 root root 5711 Sep 8 02:08 roundup_start > >drwxr-xr-x 2 roundup roundup 4096 Oct 9 14:58 tracker That's exactly what I expected. If the tracker directory is empty, can you cd to that directory and run roundup-demo using demo as the directory. See if it throws any errors. If that works, using the same docker command to run demo rather than shell and see what verbose output reports. Oh one other question, is your userid on the pi 1000? The docker container runs as uid 1000. I would expect it to complain somewhere your could see it, but maybe it just went to the bitbucket on your first failed attempt. Have a great day. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: John P. R. <ro...@cs...> - 2023-10-09 14:44:27
|
Hi Norbert: In message <DU2PR01MB855750CBE78E8CCFE8AA0FFAE8CEA@DU2PR01MB8557.eurprd01.prod. exchangelabs.com>, SCHLEMMER Norbert writes: >Used a Rpi4 with latest Rasoberry OS 64 bit to test your Roundup image > >Raspberry Pi OS with desktop >Release date: May 3rd 2023 >System: 64-bit >Kernel version: 6.1 >Debian version: 11 (bullseye) > >But the container didn't start. Any idea how to debug ? Let's make sure the image is sane. Do a: docker inspect <image id> and look for Arch. It should be arm64 or something like that. To get more info from the start script, add -e SHELL_DEBUG=1 to the docker command line and use shell rather than demo as the target. Also remove the --rm. docker run -it -e SHELL_DEBUG=1 -p 127.0.0.1:8917:8080 --name roundup_demo -v $PWD:/usr/src/app/tracker rounduptracker/roundup-development:multi shell See what that does. If it exits, try: docker logs <id of the container> you can get the container id from 'docker container ls -a' which will show exited (but not deleted (hence the removal of --rm)) containers. Thanks for trying this out. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: SCHLEMMER N. <Nor...@pd...> - 2023-10-09 06:45:19
|
Hi John Used a Rpi4 with latest Rasoberry OS 64 bit to test your Roundup image Raspberry Pi OS with desktop Release date: May 3rd 2023 System: 64-bit Kernel version: 6.1 Debian version: 11 (bullseye) But the container didn't start. Any idea how to debug ? Br Norbert pi@hadersdorf:~ $ docker pull rounduptracker/roundup-development:multi multi: Pulling from rounduptracker/roundup-development 9fda8d8052c6: Already exists e7ae3e644d56: Pull complete 234827a61660: Pull complete 04317a6a9b5b: Pull complete abc293645a9f: Pull complete 68d02d060847: Pull complete 3498468736ac: Pull complete 420506e70a60: Pull complete dfc63ece3d66: Pull complete c59fad788ae0: Pull complete e83f024b65c8: Pull complete a64dbc00ce96: Pull complete 3a784c9e64ad: Pull complete Digest: sha256:10896876775959e0c8fc8e8dbf0f946c075cf327a929138d42587a0182f8a776 Status: Downloaded newer image for rounduptracker/roundup-development:multi docker.io/rounduptracker/roundup-development:multi pi@hadersdorf:~ $ docker run --rm -p 127.0.0.1:8917:8080 --name roundup_demo -v $PWD:/usr/src/app/tracker rounduptracker/roundup-development:multi demo pi@hadersdorf:~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES pi@hadersdorf:~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES pi@hadersdorf:~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES pi@hadersdorf:~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES pi@hadersdorf:~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES pi@hadersdorf:~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES pi@hadersdorf:~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
From: John P. R. <ro...@cs...> - 2023-10-08 23:49:39
|
Hi Chuck: In message <CAH-41380E27xYayDQNCp8XyVR377LQBYSG=A+C...@ma...> , Chuck Cunningham writes: >>From trying to answer your questions I actually discovered the reason >for my problem - the tracker was actually working exactly as it >should, I just had messages_to_author set to "no" in config.ini, and >that made me erroneously think that email weren't being sent. I'm glad you found that. As I said I was baffled how your config wouldn't work. >Previously, I had been doing everything under the admin account, but >when I added my user_nosy_issue() check, I started using a regular >"User" account and mistakenly thought msg creation was broken. Got it. Is there something that would have helped you arrive at this conclusion earlier? >On Fri, Oct 6, 2023 at 8:44 AM Chuck Cunningham ><chu...@gm...> wrote: >> > It's Roundup 2.0.0 and it seems /usr/bin/python3 is being called in >> > roundup-server etc. >> thanks for any advice. perhaps I should migrate to the newest roundup >> for enhanced permission control? 2.3.0 does have a number of improvements, but I don't think there is any change to permissions for your use case. One thing I would suggest from a security perspective is to increase the number of password_pbkdf2_default_rounds. If you read the current upgrading guide on the web site it will talk you through some considerations. For your version you are using the SHA1 version of PBKDF. https://www.roundup-tracker.org/docs/upgrading.html#update-config-ini-s-password-pbkdf2-default-rounds-required >> > > >for cl in 'file', 'msg': >> > > > db.security.addPermissionToRole('User', 'View', cl) >> > > > db.security.addPermissionToRole('User', 'Edit', cl) >> > > > db.security.addPermissionToRole('User', 'Create', cl) >> > > >> > > This should allow every person with the User role to create/edit/view >> > > any msg or file. Note that this set of permissions doesn't restrict >> > > access to an individual msg or file. > >Yeah, I did this at the time of adding the user_issue() check because >I couldn't figure out how to do the equivalent for 'file' and 'msg' >and figured I didn't need super high security, so giving 'User' access >to all files and messsages seemed ok. That's a valid assessment. It's sort of like having an implicit: createdby me or assignedto me or I am nosy on their searches. It can help in keeping users from getting overwhelmed by issues when they search. If you are interested look at msg_access in https://rouilj.dynamic-dns.net/fossil/roundup_sysadmin/file?name=schema.py&ci=tip to see how I restrict msg access if an issue is restricted access. I think there is also a file_access as well. >> > > >This works great except people on the nosy list can't reply (and >> > > >create a 'msg')..I know there is something I need to do to the >> > > >permissions for messages, but can't figure it out. Any pointers much >> > > >appreciated. >> > > >> > > Your msg permissions look like you are allowing Create, so I am also >> > > bewildered. >> > > >> > > What does running: >> > > >> > > roundup-admin -i <tracker/home/dir> security user >> > > >> > > report? (note: internally role names are all lowercase hence 'user' >> > > not 'User'., This is also a bug and will be fixed to lowercase the >> > > role string.) I fixed the bug so 2.4.0 will accept User, user, UsER etc. and display the "user" role. >Role "user": >User may access the web interface (Web Access) >User may use the email interface (Email Access) >User may access the rest interface (Rest Access) >User may access the xmlrpc interface (Xmlrpc Access) >User is allowed to access this (View for "issue" only) >User is allowed to edit this (Edit for "issue" only) >User is allowed to create issue (Create for "issue" only) >User is allowed to access file (View for "file" only) >User is allowed to edit file (Edit for "file" only) >User is allowed to create file (Create for "file" only) >User is allowed to access msg (View for "msg" only) >User is allowed to edit msg (Edit for "msg" only) >User is allowed to create msg (Create for "msg" only) >User is allowed to access priority (View for "priority" only) >User is allowed to access status (View for "status" only) >Users is allowed to access issue Search (Search for "issue" only) >User is allowed to access this (on the nosy list) (View for "issue" only) >User is allowed to edit this (on the nosy list) (Edit for "issue" only) >User is allowed to access this (on the nosy list) (View for "msg" only) >User is allowed to edit this (on the nosy list) (Edit for "msg" only) >User is allowed to create this (on the nosy list) (Edit for "msg" only) >(View for "user": ('id', 'organisation', 'phone', 'realname', >'timezone', 'username') only) >User is allowed to view their own user details (View for "user" only) >User is allowed to edit their own user details (Edit for "user": >('username', 'password', 'address', 'realname', 'phone', >'organisation', 'alternate_addresses', 'queries', 'timezone') only) >User is allowed to view their own and public queries (View for "query" only) > (Search for "query" only) >User is allowed to edit their queries (Edit for "query" only) >User is allowed to retire their queries (Retire for "query" only) >User is allowed to restore their queries (Restore for "query" only) >User is allowed to create queries (Create for "query" only) Yup that looks like what I expected to see. So nothing to see here, let's move along 8-). >Thanks again, You're welcome. I hope you enjoy using Roundup. If you are on GitHub, I would apreciate it if you would star the repo. https://github.com/roundup-tracker/roundup Also if you don't mind, I would like to know how you intend to use Roundup? Is it a help desk/IT role or bug/development or some other role? Is it company wide or just for a local group? How many people are going to use it? How large is your company, < 50 employees, < 100, < 500, < 1000 > 1000 Is it internal or external facing at your company? Have a great week and I am glad your problem is solved. -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: Chuck C. <chu...@gm...> - 2023-10-08 22:56:16
|
Hi John, >From trying to answer your questions I actually discovered the reason for my problem - the tracker was actually working exactly as it should, I just had messages_to_author set to "no" in config.ini, and that made me erroneously think that email weren't being sent. Previously, I had been doing everything under the admin account, but when I added my user_nosy_issue() check, I started using a regular "User" account and mistakenly thought msg creation was broken. i still provided all the output requested below, for completeness and in case you have any other advice. Thanks again, Charles On Fri, Oct 6, 2023 at 8:44 AM Chuck Cunningham <chu...@gm...> wrote: > > PS - I checked /usr/bin/python3 and it's python 3.7.3 > > thanks for any advice. perhaps I should migrate to the newest roundup > for enhanced permission control? > > On Thu, Oct 5, 2023 at 8:58 PM Chuck Cunningham > <chu...@gm...> wrote: > > > > Thanks John, > > > > It's Roundup 2.0.0 and it seems /usr/bin/python3 is being called in > > roundup-server etc. > > > > On Thu, Oct 5, 2023 at 8:04 PM John P. Rouillard <ro...@cs...> wrote: > > > > > > Hi Chuck: > > > > > > What version of Roundup are you running? What version of Python? Roundup 2.0.0 and python 3.7.3 > > > > > > In message > > > <CAH-41398iTPhze7D_pZB8tqTBHF=q6H...@ma...>, > > > Chuck Cunningham writes: > > > >I have my tracker set up so that users only see issues they create or > > > >assigned to them by doing this: > > > > > > > >def user_issue(db, userid, itemid): > > > > return userid == db.issue.get(itemid, 'assignedto') or userid == > > > >db.issue.get(itemid, 'creator') > > > > > > I don't think you need this check. It should be a subset of the nosy > > > list permission check. The creator and assignedto people should be on > > > the nosy list. Also depending on the ticket, you might want to exclude > > > the creator. In a tracker I built, I use the nosy list (and a > > > 'verynosy') as ACL's for access to the files and msg as well as the > > > issue. (See: > > > https://rouilj.dynamic-dns.net/fossil/roundup_sysadmin/file?name=schema.py&ci=tip > > > for the (messy) schema.) Thanks very much, I'll definitely check out your schema and maybe I can adapt. I added the user_issue() check so that users only see their own issues > > > > > > >p = db.security.addPermission(name='View', klass='issue', > > > > check=user_issue,description="User is allowed to access this") > > > >db.security.addPermissionToRole('User', p) > > > >p = db.security.addPermission(name='Edit', klass='issue', > > > > check=user_issue,description="User is allowed to edit this") > > > >db.security.addPermissionToRole('User', p) > > > >db.security.addPermissionToRole('User', 'Create', 'issue') > > > > > > > >for cl in 'file', 'msg': > > > > db.security.addPermissionToRole('User', 'View', cl) > > > > db.security.addPermissionToRole('User', 'Edit', cl) > > > > db.security.addPermissionToRole('User', 'Create', cl) > > > > > > This should allow every person with the User role to create/edit/view > > > any msg or file. Note that this set of permissions doesn't restrict > > > access to an individual msg or file. Yeah, I did this at the time of adding the user_issue() check because I couldn't figure out how to do the equivalent for 'file' and 'msg' and figured I didn't need super high security, so giving 'User' access to all files and messsages seemed ok. > > > > > > >I then wanted to make it so that users also see issues for which they > > > >are on the nosy list: > > > > > > > >def user_nosy_issue(db, userid, itemid): > > > > nosy = db.issue.get(itemid, 'nosy') > > > > # check if userid is in the list and return 1 if yes, 0 otherwise > > > > return nosy.count(userid) > > > > > > Although 'return userid in nosy' is more idiomatic, this should > > > work. Using count() is less efficient though. Count has to visit each > > > value in the nosy array to count all matching values. It doesn't stop > > > once it finds a match. > > > > > > I'm trying to remember if the nosy value is a list of strings or > > > integers. I think userid and the items in the nosy list are both > > > strings. So your code should work as expected. > > > > > > I raise this because: > > > > > > nosy = ['1', '2', '3'] > > > c = nosy.count(1) > > > > > > c will be 0. > > > > > > c = nosy.count('1') > > > > > > c will be 1. Also vice versa. > > > > > > ># add permission for issue view and edit for people on nosy list > > > >p = db.security.addPermission(name='View', klass='issue', > > > > check=user_nosy_issue, description="User is allowed to access this") > > > >db.security.addPermissionToRole('User', p) > > > >p = db.security.addPermission(name='Edit', klass='issue', > > > > check=user_nosy_issue,description="User is allowed to edit this") > > > >db.security.addPermissionToRole('User', p) > > > > > > I suggest changing your descriptions to include nosy somehow. E.G. > > > > > > description="User is allowed to access this (on nosy list)" > > > will do that now so that the output below is better > > > >This works great except people on the nosy list can't reply (and > > > >create a 'msg')..I know there is something I need to do to the > > > >permissions for messages, but can't figure it out. Any pointers much > > > >appreciated. > > > > > > Your msg permissions look like you are allowing Create, so I am also > > > bewildered. > > > > > > What does running: > > > > > > roundup-admin -i <tracker/home/dir> security user > > > > > > report? (note: internally role names are all lowercase hence 'user' > > > not 'User'., This is also a bug and will be fixed to lowercase the > > > role string.) Role "user": User may access the web interface (Web Access) User may use the email interface (Email Access) User may access the rest interface (Rest Access) User may access the xmlrpc interface (Xmlrpc Access) User is allowed to access this (View for "issue" only) User is allowed to edit this (Edit for "issue" only) User is allowed to create issue (Create for "issue" only) User is allowed to access file (View for "file" only) User is allowed to edit file (Edit for "file" only) User is allowed to create file (Create for "file" only) User is allowed to access msg (View for "msg" only) User is allowed to edit msg (Edit for "msg" only) User is allowed to create msg (Create for "msg" only) User is allowed to access priority (View for "priority" only) User is allowed to access status (View for "status" only) Users is allowed to access issue Search (Search for "issue" only) User is allowed to access this (on the nosy list) (View for "issue" only) User is allowed to edit this (on the nosy list) (Edit for "issue" only) User is allowed to access this (on the nosy list) (View for "msg" only) User is allowed to edit this (on the nosy list) (Edit for "msg" only) User is allowed to create this (on the nosy list) (Edit for "msg" only) (View for "user": ('id', 'organisation', 'phone', 'realname', 'timezone', 'username') only) User is allowed to view their own user details (View for "user" only) User is allowed to edit their own user details (Edit for "user": ('username', 'password', 'address', 'realname', 'phone', 'organisation', 'alternate_addresses', 'queries', 'timezone') only) User is allowed to view their own and public queries (View for "query" only) (Search for "query" only) User is allowed to edit their queries (Edit for "query" only) User is allowed to retire their queries (Retire for "query" only) User is allowed to restore their queries (Restore for "query" only) User is allowed to create queries (Create for "query" only) > > > > > > Have a great day. > > > -- > > > -- rouilj > > > John Rouillard > > > =========================================================================== > > > My employers don't acknowledge my existence much less my opinions. |
From: John P. R. <ro...@cs...> - 2023-10-07 19:11:04
|
Hi all: For those docker aficionados, I just built a multi-architecture docker image. It supports i386, amd64, and arm64. I am especially interested in how the arm64 image works or doesn't work. I only have a couple of old, small rasp-pi's so I can't really test the image. You can get it with: docker pull rounduptracker/roundup-development:multi and run a demo as documented in the installation doc: https://roundup-tracker.org/docs/installation.html#running-in-demo-mode-with-docker It is running version 91fad2d2c4b3 from the development tip. Have a great weekend. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: John P. R. <ro...@cs...> - 2023-10-06 14:56:10
|
Hi Simon: In message <a66...@ho...>, Eigeldinger Simon writes: >$ roundup-admin templates trace_search > >C:\roundup\lib\site-packages\share\roundup\templates >C:\roundup\share\roundup\templates >C:\share\roundup\templates >C:\share\roundup\templates >C:\roundup\lib\site-packages\:\roundup\share\roundup\templates >C:\roundup\lib\site-packages\:\Python310\local\share\roundup\templates >C:\roundup\lib\site-packages\:\Python310\share\roundup\templates >C:\roundup/* >C:\roundup Yup that matches what I see on my local install. None of the paths with a : in them will work, but it's doing the "expected thing by trying to strip the leading '/' from the path to make it a relative path. On Windows that just removes the 'C' 8-/. >The installation has dropped the templates into >C:\roundup\Lib\site-packages\roundup\share\roundup\templates > >So i copied the complete roundup dir from >C:\roundup\Lib\site-packages\roundup\share\ >to >c:\roundup\share > >So i tried creating a tracker again: > >$ roundup-admin install >Enter tracker home: c:\roundup\trackers >Templates:: classic, devel, jinja2, minimal, responsive That looks much better. >After doing some changes in the config file i did: > >$ roundup-admin initialise > >Enter tracker home: c:\roundup\trackers >Admin Password: > Confirm: > >So it seems it worked that time. Hurrah success. Now that I have a windows platform to work on I'll see if I can fix it to install the docs, templates etc. in a better place. Since it looks like you might want to use the tracker in the German language, I tried testing in German by manually change the URL to add the: @language=de query parameter. For example: http://loclhost:8917/demo/?@language=de (note adding @language=none should return you to the browser defaults.). In testing the locale files are not being found. I have debugged it and gotten something that shows the German trnslation in the web interface. But I am not happy with the "fix". So to get a German speaking tracker, you might need to wait a bit. Have a great weekend and thanks for reporting back. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: Chuck C. <chu...@gm...> - 2023-10-06 12:45:07
|
PS - I checked /usr/bin/python3 and it's python 3.7.3 thanks for any advice. perhaps I should migrate to the newest roundup for enhanced permission control? On Thu, Oct 5, 2023 at 8:58 PM Chuck Cunningham <chu...@gm...> wrote: > > Thanks John, > > It's Roundup 2.0.0 and it seems /usr/bin/python3 is being called in > roundup-server etc. > > On Thu, Oct 5, 2023 at 8:04 PM John P. Rouillard <ro...@cs...> wrote: > > > > Hi Chuck: > > > > What version of Roundup are you running? What version of Python? > > > > In message > > <CAH-41398iTPhze7D_pZB8tqTBHF=q6H...@ma...>, > > Chuck Cunningham writes: > > >I have my tracker set up so that users only see issues they create or > > >assigned to them by doing this: > > > > > >def user_issue(db, userid, itemid): > > > return userid == db.issue.get(itemid, 'assignedto') or userid == > > >db.issue.get(itemid, 'creator') > > > > I don't think you need this check. It should be a subset of the nosy > > list permission check. The creator and assignedto people should be on > > the nosy list. Also depending on the ticket, you might want to exclude > > the creator. In a tracker I built, I use the nosy list (and a > > 'verynosy') as ACL's for access to the files and msg as well as the > > issue. (See: > > https://rouilj.dynamic-dns.net/fossil/roundup_sysadmin/file?name=schema.py&ci=tip > > for the (messy) schema.) > > > > >p = db.security.addPermission(name='View', klass='issue', > > > check=user_issue,description="User is allowed to access this") > > >db.security.addPermissionToRole('User', p) > > >p = db.security.addPermission(name='Edit', klass='issue', > > > check=user_issue,description="User is allowed to edit this") > > >db.security.addPermissionToRole('User', p) > > >db.security.addPermissionToRole('User', 'Create', 'issue') > > > > > >for cl in 'file', 'msg': > > > db.security.addPermissionToRole('User', 'View', cl) > > > db.security.addPermissionToRole('User', 'Edit', cl) > > > db.security.addPermissionToRole('User', 'Create', cl) > > > > This should allow every person with the User role to create/edit/view > > any msg or file. Note that this set of permissions doesn't restrict > > access to an individual msg or file. > > > > >I then wanted to make it so that users also see issues for which they > > >are on the nosy list: > > > > > >def user_nosy_issue(db, userid, itemid): > > > nosy = db.issue.get(itemid, 'nosy') > > > # check if userid is in the list and return 1 if yes, 0 otherwise > > > return nosy.count(userid) > > > > Although 'return userid in nosy' is more idiomatic, this should > > work. Using count() is less efficient though. Count has to visit each > > value in the nosy array to count all matching values. It doesn't stop > > once it finds a match. > > > > I'm trying to remember if the nosy value is a list of strings or > > integers. I think userid and the items in the nosy list are both > > strings. So your code should work as expected. > > > > I raise this because: > > > > nosy = ['1', '2', '3'] > > c = nosy.count(1) > > > > c will be 0. > > > > c = nosy.count('1') > > > > c will be 1. Also vice versa. > > > > ># add permission for issue view and edit for people on nosy list > > >p = db.security.addPermission(name='View', klass='issue', > > > check=user_nosy_issue, description="User is allowed to access this") > > >db.security.addPermissionToRole('User', p) > > >p = db.security.addPermission(name='Edit', klass='issue', > > > check=user_nosy_issue,description="User is allowed to edit this") > > >db.security.addPermissionToRole('User', p) > > > > I suggest changing your descriptions to include nosy somehow. E.G. > > > > description="User is allowed to access this (on nosy list)" > > > > >This works great except people on the nosy list can't reply (and > > >create a 'msg')..I know there is something I need to do to the > > >permissions for messages, but can't figure it out. Any pointers much > > >appreciated. > > > > Your msg permissions look like you are allowing Create, so I am also > > bewildered. > > > > What does running: > > > > roundup-admin -i <tracker/home/dir> security user > > > > report? (note: internally role names are all lowercase hence 'user' > > not 'User'., This is also a bug and will be fixed to lowercase the > > role string.) > > > > Have a great day. > > -- > > -- rouilj > > John Rouillard > > =========================================================================== > > My employers don't acknowledge my existence much less my opinions. |
From: Eigeldinger S. <sim...@ho...> - 2023-10-06 09:25:30
|
Hi, Forgot to send that one: $ roundup-admin templates trace_search C:\roundup\lib\site-packages\share\roundup\templates C:\roundup\share\roundup\templates C:\share\roundup\templates C:\share\roundup\templates C:\roundup\lib\site-packages\:\roundup\share\roundup\templates C:\roundup\lib\site-packages\:\Python310\local\share\roundup\templates C:\roundup\lib\site-packages\:\Python310\share\roundup\templates C:\roundup/* C:\roundup The installation has dropped the templates into C:\roundup\Lib\site-packages\roundup\share\roundup\templates So i copied the complete roundup dir from C:\roundup\Lib\site-packages\roundup\share\ to c:\roundup\share So i tried creating a tracker again: $ roundup-admin install Enter tracker home: c:\roundup\trackers Templates:: classic, devel, jinja2, minimal, responsive Select template [classic]: Back ends:: anydbm, sqlite Select backend [anydbm]: sqlite --------------------------------------------------------------------------- You should now edit the tracker configuration file: c:\roundup\trackers\config.ini ... at a minimum, you must set following options: [tracker]: web [mail]: domain, host If you wish to modify the database schema, you should also edit the schema file: c:\roundup\trackers\schema.py You may also change the database initialisation file: c:\roundup\trackers\initial_data.py ... see the documentation on customizing for more information. You MUST run the "roundup-admin initialise" command once you've performed the above steps. --------------------------------------------------------------------------- After doing some changes in the config file i did: $ roundup-admin initialise Enter tracker home: c:\roundup\trackers Admin Password: Confirm: So it seems it worked that time. Greetings, Simon Mit freundlichen Grüßen Simon Eigeldinger Organisation, Prozessmanagement, Informatik Nebengebäude 1, OG1 Stadt Hohenems Kaiser-Franz-Josef-Straße 4 6845 Hohenems T: +43 5576 7101-1143 | E: sim...@ho... | www.hohenems.at Diese Nachricht und allfällige angehängte Dokumente sind vertraulich und nur für den/die Adressaten bestimmt. -----Ursprüngliche Nachricht----- Von: ro...@cs... <ro...@cs...> Gesendet: Freitag, 6. Oktober 2023 10:26 An: Eigeldinger Simon <sim...@ho...> Cc: rou...@li... Betreff: Re: AW: AW: [Roundup-users] Installing Roundup on Windows Hello Simon: In message <404...@ho...>, Eigeldinger Simon writes: >Install worked. >Though when i want to create a tracker i see no templates to choose from. >It also shows an error mentioning templates. Ugh. Di you do a 'pip' or 'pip -e' install using the current development version? Also do you remember if it built a wheel? What does: roundup-admin templates trace_search It should tell you what directories it is searching for templates. If it finds any templates it will tell you the name, directory and description for each installed template. As you might guess from the fact that there is a command to debug this it has been a problem on Linux too. It's nice that we have parity on Windows 8-/. The templates and things should be in: /venv/root/share/roundup/templates but it looks like it is putting it into: /venv/root/Lib/site-packages/venv/root/share/roundup/templates So if your venv is in c:\Roundup\env please see if the directory \Roundup\env\Lib\site-packages\Roundup\env\share exists. If so please move it to: \Roundup\env\share and rerun: roundup-admin templates trace_search to make sure your templates are visible. Any share subdirectory listed by the templates subcommand would work. Putting it at the top of the venv just makes it easier to find. Usually there are HTML docs and man pages. For some reason those aren't being installed correctly. If you can fix your install using the directions above, I'll see about fixing it later today or over the weekend. Have a great day and thanks for helping me debug this. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: Eigeldinger S. <sim...@ho...> - 2023-10-06 09:17:19
|
Hi John, Here's the commands i used for the complete install process and the output: $ python --version Python 3.10.10 $ mkdir roundup $ cd roundup $ python -m venv . $ scripts\activate $ python -m pip install pip --upgrade Requirement already satisfied: pip in c:\roundup\lib\site-packages (22.3.1) Collecting pip Using cached pip-23.2.1-py3-none-any.whl (2.1 MB) Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 22.3.1 Uninstalling pip-22.3.1: Successfully uninstalled pip-22.3.1 Successfully installed pip-23.2.1 Then i downloaded the latest code snapshot, extracted it into the roundub/src dir. $ cd src $ pip install . Processing c:\roundup\src Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Building wheels for collected packages: roundup Building wheel for roundup (pyproject.toml) ... done Created wheel for roundup: filename=roundup-2.3.0-py3-none-any.whl size=1374336 sha256=e3d7df155da3bc65d16ddd5c6ea190a3fe0cce29ae8522e5376f547d3073b95f Stored in directory: C:\Users\simon.eigeldinger\AppData\Local\Temp\pip-ephem-wheel-cache-0sjh_ue2\wheels\88\63\af\359fbd9b3f8ee2ffd9ecc35a85a8170e4c9d5817f3cb9a46bb Successfully built roundup Installing collected packages: roundup Successfully installed roundup-2.3.0 $ cd .. $ mkdir trackers $ roundup-admin install Enter tracker home: c:\roundup\trackers Templates:: Select template [classic]: Back ends:: anydbm, sqlite Select backend [anydbm]: sqlite Traceback (most recent call last): File "C:\Python310\lib\runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "C:\Python310\lib\runpy.py", line 86, in _run_code exec(code, run_globals) File "C:\roundup\Scripts\roundup-admin.exe\__main__.py", line 7, in <module> File "C:\roundup\lib\site-packages\roundup\scripts\roundup_admin.py", line 50, in run sys.exit(tool.main()) File "C:\roundup\lib\site-packages\roundup\admin.py", line 2212, in main ret = self.run_command(args) File "C:\roundup\lib\site-packages\roundup\admin.py", line 2066, in run_command return self.do_install(self.tracker_home, args) File "C:\roundup\lib\site-packages\roundup\admin.py", line 1246, in do_install template_config = UserConfig(templates[template]['path'] + KeyError: 'classic' Greetings, Simon Mit freundlichen Grüßen Simon Eigeldinger Organisation, Prozessmanagement, Informatik Nebengebäude 1, OG1 Stadt Hohenems Kaiser-Franz-Josef-Straße 4 6845 Hohenems T: +43 5576 7101-1143 | E: sim...@ho... | www.hohenems.at Diese Nachricht und allfällige angehängte Dokumente sind vertraulich und nur für den/die Adressaten bestimmt. -----Ursprüngliche Nachricht----- Von: ro...@cs... <ro...@cs...> Gesendet: Freitag, 6. Oktober 2023 10:26 An: Eigeldinger Simon <sim...@ho...> Cc: rou...@li... Betreff: Re: AW: AW: [Roundup-users] Installing Roundup on Windows Hello Simon: In message <404...@ho...>, Eigeldinger Simon writes: >Install worked. >Though when i want to create a tracker i see no templates to choose from. >It also shows an error mentioning templates. Ugh. Di you do a 'pip' or 'pip -e' install using the current development version? Also do you remember if it built a wheel? What does: roundup-admin templates trace_search It should tell you what directories it is searching for templates. If it finds any templates it will tell you the name, directory and description for each installed template. As you might guess from the fact that there is a command to debug this it has been a problem on Linux too. It's nice that we have parity on Windows 8-/. The templates and things should be in: /venv/root/share/roundup/templates but it looks like it is putting it into: /venv/root/Lib/site-packages/venv/root/share/roundup/templates So if your venv is in c:\Roundup\env please see if the directory \Roundup\env\Lib\site-packages\Roundup\env\share exists. If so please move it to: \Roundup\env\share and rerun: roundup-admin templates trace_search to make sure your templates are visible. Any share subdirectory listed by the templates subcommand would work. Putting it at the top of the venv just makes it easier to find. Usually there are HTML docs and man pages. For some reason those aren't being installed correctly. If you can fix your install using the directions above, I'll see about fixing it later today or over the weekend. Have a great day and thanks for helping me debug this. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: John P. R. <ro...@cs...> - 2023-10-06 08:25:47
|
Hello Simon: In message <404...@ho...>, Eigeldinger Simon writes: >Install worked. >Though when i want to create a tracker i see no templates to choose from. >It also shows an error mentioning templates. Ugh. Di you do a 'pip' or 'pip -e' install using the current development version? Also do you remember if it built a wheel? What does: roundup-admin templates trace_search It should tell you what directories it is searching for templates. If it finds any templates it will tell you the name, directory and description for each installed template. As you might guess from the fact that there is a command to debug this it has been a problem on Linux too. It's nice that we have parity on Windows 8-/. The templates and things should be in: /venv/root/share/roundup/templates but it looks like it is putting it into: /venv/root/Lib/site-packages/venv/root/share/roundup/templates So if your venv is in c:\Roundup\env please see if the directory \Roundup\env\Lib\site-packages\Roundup\env\share exists. If so please move it to: \Roundup\env\share and rerun: roundup-admin templates trace_search to make sure your templates are visible. Any share subdirectory listed by the templates subcommand would work. Putting it at the top of the venv just makes it easier to find. Usually there are HTML docs and man pages. For some reason those aren't being installed correctly. If you can fix your install using the directions above, I'll see about fixing it later today or over the weekend. Have a great day and thanks for helping me debug this. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: Eigeldinger S. <sim...@ho...> - 2023-10-06 06:39:13
|
Hi Norbert, Yes i also could install roundup under WSL. Though the docs mention that it also should run under windows. So i tried that before. Greetings, Simon Mit freundlichen Grüßen Simon Eigeldinger Organisation, Prozessmanagement, Informatik Nebengebäude 1, OG1 [Hohenems_logo]Stadt Hohenems Kaiser-Franz-Josef-Straße 4 6845 Hohenems T: +43 5576 7101-1143 | E: sim...@ho... | www.hohenems.at<http://www.hohenems.at> Diese Nachricht und allfällige angehängte Dokumente sind vertraulich und nur für den/die Adressaten bestimmt. Von: SCHLEMMER Norbert <Nor...@pd...> Gesendet: Donnerstag, 5. Oktober 2023 17:12 An: Eigeldinger Simon <sim...@ho...>; rou...@li... Betreff: AW: Installing Roundup on Windows Hi Simon Are you able to run Roundup under Linux, as virtual machine under Windows or as Docker container ? Just to be on the main road ... Br Norbert Von: Eigeldinger Simon <sim...@ho...> Gesendet: Donnerstag, 05. Oktober 2023 13:55 An: rou...@li... Betreff: [Roundup-users] Installing Roundup on Windows *EXTERNAL source* Hi all, Just tried to install Roundup on a Windows 10 64 bit machine on Python 3.10. First i created a virtual environment, updated pip and tried to install roundup using pip as told in the docs. After downloading the tar.gz file and installing some not mentioned dependencies the installation seems to hang. I left it for 2 hours and after i looked again into the terminal i found out that the installation still hangs after printing the installing dependencies... done message. Anyone knows that problem? Greetings, Simon |
From: Eigeldinger S. <sim...@ho...> - 2023-10-06 06:38:10
|
Hi all, Install worked. Though when i want to create a tracker i see no templates to choose from. It also shows an error mentioning templates. Greetings, Simon Mit freundlichen Grüßen Simon Eigeldinger Organisation, Prozessmanagement, Informatik Nebengebäude 1, OG1 Stadt Hohenems Kaiser-Franz-Josef-Straße 4 6845 Hohenems T: +43 5576 7101-1143 | E: sim...@ho... | www.hohenems.at Diese Nachricht und allfällige angehängte Dokumente sind vertraulich und nur für den/die Adressaten bestimmt. -----Ursprüngliche Nachricht----- Von: ro...@cs... <ro...@cs...> Gesendet: Donnerstag, 5. Oktober 2023 17:12 An: Eigeldinger Simon <sim...@ho...> Cc: rou...@li... Betreff: Re: AW: [Roundup-users] Installing Roundup on Windows In message <3b5...@ho...>, Eigeldinger Simon writes: >Hi John, > >I am using the official Python 3.10.10 package for Windows. >I will try the bleeding edge code and report how it went. Thanks. One thing you might need to do is use the -e (editable) flag with pip. If you get an error saying that bdist_wheel is an invalid command try using -e. >Greetings and have a nice weekend, Same. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: Chuck C. <chu...@gm...> - 2023-10-06 00:58:34
|
Thanks John, It's Roundup 2.0.0 and it seems /usr/bin/python3 is being called in roundup-server etc. On Thu, Oct 5, 2023 at 8:04 PM John P. Rouillard <ro...@cs...> wrote: > > Hi Chuck: > > What version of Roundup are you running? What version of Python? > > In message > <CAH-41398iTPhze7D_pZB8tqTBHF=q6H...@ma...>, > Chuck Cunningham writes: > >I have my tracker set up so that users only see issues they create or > >assigned to them by doing this: > > > >def user_issue(db, userid, itemid): > > return userid == db.issue.get(itemid, 'assignedto') or userid == > >db.issue.get(itemid, 'creator') > > I don't think you need this check. It should be a subset of the nosy > list permission check. The creator and assignedto people should be on > the nosy list. Also depending on the ticket, you might want to exclude > the creator. In a tracker I built, I use the nosy list (and a > 'verynosy') as ACL's for access to the files and msg as well as the > issue. (See: > https://rouilj.dynamic-dns.net/fossil/roundup_sysadmin/file?name=schema.py&ci=tip > for the (messy) schema.) > > >p = db.security.addPermission(name='View', klass='issue', > > check=user_issue,description="User is allowed to access this") > >db.security.addPermissionToRole('User', p) > >p = db.security.addPermission(name='Edit', klass='issue', > > check=user_issue,description="User is allowed to edit this") > >db.security.addPermissionToRole('User', p) > >db.security.addPermissionToRole('User', 'Create', 'issue') > > > >for cl in 'file', 'msg': > > db.security.addPermissionToRole('User', 'View', cl) > > db.security.addPermissionToRole('User', 'Edit', cl) > > db.security.addPermissionToRole('User', 'Create', cl) > > This should allow every person with the User role to create/edit/view > any msg or file. Note that this set of permissions doesn't restrict > access to an individual msg or file. > > >I then wanted to make it so that users also see issues for which they > >are on the nosy list: > > > >def user_nosy_issue(db, userid, itemid): > > nosy = db.issue.get(itemid, 'nosy') > > # check if userid is in the list and return 1 if yes, 0 otherwise > > return nosy.count(userid) > > Although 'return userid in nosy' is more idiomatic, this should > work. Using count() is less efficient though. Count has to visit each > value in the nosy array to count all matching values. It doesn't stop > once it finds a match. > > I'm trying to remember if the nosy value is a list of strings or > integers. I think userid and the items in the nosy list are both > strings. So your code should work as expected. > > I raise this because: > > nosy = ['1', '2', '3'] > c = nosy.count(1) > > c will be 0. > > c = nosy.count('1') > > c will be 1. Also vice versa. > > ># add permission for issue view and edit for people on nosy list > >p = db.security.addPermission(name='View', klass='issue', > > check=user_nosy_issue, description="User is allowed to access this") > >db.security.addPermissionToRole('User', p) > >p = db.security.addPermission(name='Edit', klass='issue', > > check=user_nosy_issue,description="User is allowed to edit this") > >db.security.addPermissionToRole('User', p) > > I suggest changing your descriptions to include nosy somehow. E.G. > > description="User is allowed to access this (on nosy list)" > > >This works great except people on the nosy list can't reply (and > >create a 'msg')..I know there is something I need to do to the > >permissions for messages, but can't figure it out. Any pointers much > >appreciated. > > Your msg permissions look like you are allowing Create, so I am also > bewildered. > > What does running: > > roundup-admin -i <tracker/home/dir> security user > > report? (note: internally role names are all lowercase hence 'user' > not 'User'., This is also a bug and will be fixed to lowercase the > role string.) > > Have a great day. > -- > -- rouilj > John Rouillard > =========================================================================== > My employers don't acknowledge my existence much less my opinions. |
From: John P. R. <ro...@cs...> - 2023-10-06 00:04:18
|
Hi Chuck: What version of Roundup are you running? What version of Python? In message <CAH-41398iTPhze7D_pZB8tqTBHF=q6H...@ma...>, Chuck Cunningham writes: >I have my tracker set up so that users only see issues they create or >assigned to them by doing this: > >def user_issue(db, userid, itemid): > return userid == db.issue.get(itemid, 'assignedto') or userid == >db.issue.get(itemid, 'creator') I don't think you need this check. It should be a subset of the nosy list permission check. The creator and assignedto people should be on the nosy list. Also depending on the ticket, you might want to exclude the creator. In a tracker I built, I use the nosy list (and a 'verynosy') as ACL's for access to the files and msg as well as the issue. (See: https://rouilj.dynamic-dns.net/fossil/roundup_sysadmin/file?name=schema.py&ci=tip for the (messy) schema.) >p = db.security.addPermission(name='View', klass='issue', > check=user_issue,description="User is allowed to access this") >db.security.addPermissionToRole('User', p) >p = db.security.addPermission(name='Edit', klass='issue', > check=user_issue,description="User is allowed to edit this") >db.security.addPermissionToRole('User', p) >db.security.addPermissionToRole('User', 'Create', 'issue') > >for cl in 'file', 'msg': > db.security.addPermissionToRole('User', 'View', cl) > db.security.addPermissionToRole('User', 'Edit', cl) > db.security.addPermissionToRole('User', 'Create', cl) This should allow every person with the User role to create/edit/view any msg or file. Note that this set of permissions doesn't restrict access to an individual msg or file. >I then wanted to make it so that users also see issues for which they >are on the nosy list: > >def user_nosy_issue(db, userid, itemid): > nosy = db.issue.get(itemid, 'nosy') > # check if userid is in the list and return 1 if yes, 0 otherwise > return nosy.count(userid) Although 'return userid in nosy' is more idiomatic, this should work. Using count() is less efficient though. Count has to visit each value in the nosy array to count all matching values. It doesn't stop once it finds a match. I'm trying to remember if the nosy value is a list of strings or integers. I think userid and the items in the nosy list are both strings. So your code should work as expected. I raise this because: nosy = ['1', '2', '3'] c = nosy.count(1) c will be 0. c = nosy.count('1') c will be 1. Also vice versa. ># add permission for issue view and edit for people on nosy list >p = db.security.addPermission(name='View', klass='issue', > check=user_nosy_issue, description="User is allowed to access this") >db.security.addPermissionToRole('User', p) >p = db.security.addPermission(name='Edit', klass='issue', > check=user_nosy_issue,description="User is allowed to edit this") >db.security.addPermissionToRole('User', p) I suggest changing your descriptions to include nosy somehow. E.G. description="User is allowed to access this (on nosy list)" >This works great except people on the nosy list can't reply (and >create a 'msg')..I know there is something I need to do to the >permissions for messages, but can't figure it out. Any pointers much >appreciated. Your msg permissions look like you are allowing Create, so I am also bewildered. What does running: roundup-admin -i <tracker/home/dir> security user report? (note: internally role names are all lowercase hence 'user' not 'User'., This is also a bug and will be fixed to lowercase the role string.) Have a great day. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: Chuck C. <chu...@gm...> - 2023-10-05 16:47:16
|
Hi all, I have my tracker set up so that users only see issues they create or assigned to them by doing this: def user_issue(db, userid, itemid): return userid == db.issue.get(itemid, 'assignedto') or userid == db.issue.get(itemid, 'creator') p = db.security.addPermission(name='View', klass='issue', check=user_issue,description="User is allowed to access this") db.security.addPermissionToRole('User', p) p = db.security.addPermission(name='Edit', klass='issue', check=user_issue,description="User is allowed to edit this") db.security.addPermissionToRole('User', p) db.security.addPermissionToRole('User', 'Create', 'issue') for cl in 'file', 'msg': db.security.addPermissionToRole('User', 'View', cl) db.security.addPermissionToRole('User', 'Edit', cl) db.security.addPermissionToRole('User', 'Create', cl) I then wanted to make it so that users also see issues for which they are on the nosy list: def user_nosy_issue(db, userid, itemid): nosy = db.issue.get(itemid, 'nosy') # check if userid is in the list and return 1 if yes, 0 otherwise return nosy.count(userid) # add permission for issue view and edit for people on nosy list p = db.security.addPermission(name='View', klass='issue', check=user_nosy_issue,description="User is allowed to access this") db.security.addPermissionToRole('User', p) p = db.security.addPermission(name='Edit', klass='issue', check=user_nosy_issue,description="User is allowed to edit this") db.security.addPermissionToRole('User', p) This works great except people on the nosy list can't reply (and create a 'msg')..I know there is something I need to do to the permissions for messages, but can't figure it out. Any pointers much appreciated. Charles |
From: SCHLEMMER N. <Nor...@pd...> - 2023-10-05 15:27:50
|
Hi Simon Are you able to run Roundup under Linux, as virtual machine under Windows or as Docker container ? Just to be on the main road ... Br Norbert Von: Eigeldinger Simon <sim...@ho...> Gesendet: Donnerstag, 05. Oktober 2023 13:55 An: rou...@li... Betreff: [Roundup-users] Installing Roundup on Windows *EXTERNAL source* Hi all, Just tried to install Roundup on a Windows 10 64 bit machine on Python 3.10. First i created a virtual environment, updated pip and tried to install roundup using pip as told in the docs. After downloading the tar.gz file and installing some not mentioned dependencies the installation seems to hang. I left it for 2 hours and after i looked again into the terminal i found out that the installation still hangs after printing the installing dependencies... done message. Anyone knows that problem? Greetings, Simon |
From: John P. R. <ro...@cs...> - 2023-10-05 15:11:57
|
In message <3b5...@ho...>, Eigeldinger Simon writes: >Hi John, > >I am using the official Python 3.10.10 package for Windows. >I will try the bleeding edge code and report how it went. Thanks. One thing you might need to do is use the -e (editable) flag with pip. If you get an error saying that bdist_wheel is an invalid command try using -e. >Greetings and have a nice weekend, Same. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: Eigeldinger S. <sim...@ho...> - 2023-10-05 15:02:25
|
Hi John, I am using the official Python 3.10.10 package for Windows. I will try the bleeding edge code and report how it went. Greetings and have a nice weekend, Simon Mit freundlichen Grüßen Simon Eigeldinger Organisation, Prozessmanagement, Informatik Nebengebäude 1, OG1 Stadt Hohenems Kaiser-Franz-Josef-Straße 4 6845 Hohenems T: +43 5576 7101-1143 | E: sim...@ho... | www.hohenems.at Diese Nachricht und allfällige angehängte Dokumente sind vertraulich und nur für den/die Adressaten bestimmt. -----Ursprüngliche Nachricht----- Von: ro...@cs... <ro...@cs...> Gesendet: Donnerstag, 5. Oktober 2023 16:48 An: Eigeldinger Simon <sim...@ho...> Cc: rou...@li... Betreff: Re: [Roundup-users] Installing Roundup on Windows Hello Simon: In message <94e...@ho...>, Eigeldinger Simon writes: >Just tried to install Roundup on a Windows 10 64 bit machine on Python 3.10. Just out of curiosity, where did you get your Python installation? >First i created a virtual environment, updated pip and tried to install >roundup using pip as told in the docs. Sadly that mechanism is broken in 2.3.0 under windows. See the release notes errata: https://wiki.roundup-tracker.org/ReleaseErrata#Install_under_windows_fails It will be fixed in 2.4.0 (it has been broken since 2.1.0). Since we don't seem to have many Windows users, I haven't planned on releasing a 2.3.1 to fix this. However you can help test the fix if you like (see below). Also you are the third windows install I have heard about since 2.3.0 was released. One of them read the ReleaseErrata and successfully installed 2.3.0 using the method there. >After downloading the tar.gz file and installing some not mentioned >dependencies Which dependencies? Roundup should install with just the standard libraries. It's possible your Windows Python installation is missing some standard libraries. You won't be able to run tests without installing pytest, but Roundup itself should run. > the installation seems to hang. > >I left it for 2 hours and after i looked again into the terminal >i found out that the installation still hangs after printing the >installing dependencies... done message. >Anyone knows that problem? Sadly yes. Here is the joke, case matters. During installation the code discovers some paths used for the installation. It used to look for 'lib' and 'lib64'. It didn't look for 'Lib' which is used on Windows. This has been fixed in a couple of ways. If you don't mind using the current development release, you can help test the fix. Download a zip file from the repository using: https://sourceforge.net/p/roundup/code/ci/default/tarball (I know it says tarball, but it generates a zip archive). Unpack the zip archive, change to the directory (roundup-code-<hash of the commit>). Then use 'pip install .'. The installation document of the current development copy on windows mentions the optional dependency pyreadline3. Installing pyreadine3 adds command line editing and history in the roundup-admin CLI. Let us know what you decide. I don't expect you to have other issues on Windows. Python provides a pretty consistent environment across platforms. This bug showed up at the interface between the OS and Python. Thanks for trying Roundup. I hope you find it useful. Have a great weekend. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: John P. R. <ro...@cs...> - 2023-10-05 14:48:24
|
Hello Simon: In message <94e...@ho...>, Eigeldinger Simon writes: >Just tried to install Roundup on a Windows 10 64 bit machine on Python 3.10. Just out of curiosity, where did you get your Python installation? >First i created a virtual environment, updated pip and tried to install >roundup using pip as told in the docs. Sadly that mechanism is broken in 2.3.0 under windows. See the release notes errata: https://wiki.roundup-tracker.org/ReleaseErrata#Install_under_windows_fails It will be fixed in 2.4.0 (it has been broken since 2.1.0). Since we don't seem to have many Windows users, I haven't planned on releasing a 2.3.1 to fix this. However you can help test the fix if you like (see below). Also you are the third windows install I have heard about since 2.3.0 was released. One of them read the ReleaseErrata and successfully installed 2.3.0 using the method there. >After downloading the tar.gz file and installing some not mentioned >dependencies Which dependencies? Roundup should install with just the standard libraries. It's possible your Windows Python installation is missing some standard libraries. You won't be able to run tests without installing pytest, but Roundup itself should run. > the installation seems to hang. > >I left it for 2 hours and after i looked again into the terminal >i found out that the installation still hangs after printing the >installing dependencies... done message. >Anyone knows that problem? Sadly yes. Here is the joke, case matters. During installation the code discovers some paths used for the installation. It used to look for 'lib' and 'lib64'. It didn't look for 'Lib' which is used on Windows. This has been fixed in a couple of ways. If you don't mind using the current development release, you can help test the fix. Download a zip file from the repository using: https://sourceforge.net/p/roundup/code/ci/default/tarball (I know it says tarball, but it generates a zip archive). Unpack the zip archive, change to the directory (roundup-code-<hash of the commit>). Then use 'pip install .'. The installation document of the current development copy on windows mentions the optional dependency pyreadline3. Installing pyreadine3 adds command line editing and history in the roundup-admin CLI. Let us know what you decide. I don't expect you to have other issues on Windows. Python provides a pretty consistent environment across platforms. This bug showed up at the interface between the OS and Python. Thanks for trying Roundup. I hope you find it useful. Have a great weekend. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |
From: Eigeldinger S. <sim...@ho...> - 2023-10-05 12:13:18
|
Hi all, Just tried to install Roundup on a Windows 10 64 bit machine on Python 3.10. First i created a virtual environment, updated pip and tried to install roundup using pip as told in the docs. After downloading the tar.gz file and installing some not mentioned dependencies the installation seems to hang. I left it for 2 hours and after i looked again into the terminal i found out that the installation still hangs after printing the installing dependencies... done message. Anyone knows that problem? Greetings, Simon |
From: John P. R. <ro...@cs...> - 2023-08-19 23:09:11
|
Hi all: I am planning on removing the roundup-xmlrpc-server in 2.4.0. Is anybody using this? Does anybody have a reason it should be retained since its functionality is available at /xmlrpc on a normal roundup web instance? Have a great week all. -- -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |