Evergreen ILS Website

IRC log for #evergreen, 2023-06-22

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat

All times shown according to the server's local time.

Time Nick Message
02:20 tsadok joined #evergreen
07:11 kworstell-isl joined #evergreen
07:51 kworstell-isl joined #evergreen
08:02 BDorsey joined #evergreen
08:21 sleary joined #evergreen
08:31 rfrasur joined #evergreen
08:32 csharp_ @quote add < bgillap_> Hey, I want to look at beautiful opacs.
08:32 pinesol csharp_: Error: You must be registered to use this command. If you are already registered, you must either identify (using the identify command) or add a hostmask matching your current hostmask (using the "hostmask add" command).
08:32 csharp_ grr
08:32 csharp_ @quote add < bgillap_> Hey, I want to look at beautiful opacs.
08:32 pinesol csharp_: The operation succeeded.  Quote #238 added.
08:38 rfrasur joined #evergreen
08:38 Dyrcona joined #evergreen
08:43 collum joined #evergreen
08:46 Dyrcona I disagree with Lp 2024657 being a bug. I want to convert it to a question.
08:46 pinesol Launchpad bug 2024657 in Evergreen "Wishlist: ungroup permissions in the Everything staff permission" [Wishlist,Confirmed] https://launchpad.net/bugs/2024657
08:51 Dyrcona And, I did.
09:28 csharp_ Dyrcona++ #agreed
09:28 csharp_ @who knows the answer to life, the universe and EVERYTHING?
09:28 pinesol berick knows the answer to life, the universe and EVERYTHING.
09:29 csharp_ pinesol: for sure
09:29 pinesol csharp_: Try running autogen
09:33 Christineb joined #evergreen
09:35 Dyrcona csharp_++
09:35 Dyrcona pinesol++
09:35 mantis joined #evergreen
09:35 * Dyrcona spent so long editing a draft email, that I decided to print it out to proofread it before hitting "Send."
09:36 csharp_ haha
09:51 Dyrcona I think it will be a better message because of that editing, too.
10:02 sleary joined #evergreen
10:06 csharp_ do we even need the EVERYTHING perm?  Seems like the superuser flag on actor.usr should cover that use case and remove all confusion
10:07 Dyrcona I want to remove the superuser flag.
10:08 Dyrcona In my opinion, the EVERYTHING permission is safer and easier to remove from an account.
10:09 Dyrcona Permission checks also have to check for superuser, and I thought there was Lp bug to remove/deprecate superuser, but I'm not finding it.
10:10 csharp_ I guess because we have never used the EVERYTHING perm except for troubleshooting I don't understand the use cases for it in the Real World™
10:10 csharp_ as in, the only user that "needs" all perms is the admin user
10:10 Dyrcona Same use case as superuser, but better if you also get rid of superuser.
10:11 csharp_ which we treat like a UNIX-ish root account
10:11 berick same as csharp_ here.  i've never EVERYTHING.
10:11 berick *never used
10:12 Dyrcona Right, and I disagree with treating it as "root" account. I also think the default admin account should be eliminated.
10:12 berick and superuser = true / false is delightfully simple
10:13 Dyrcona And what happens when you leave the organization and you're still using that account as a patron? Will they remember to remove the superuser flag, and who can do it since it pretty much has to be done in the database?
10:13 csharp_ we just never assign it to end users
10:13 Dyrcona csharp_: What if your admin is also an end user, as I was at MVLC?
10:14 csharp_ I would probably rethink the model in that case
10:14 Dyrcona EVERYTHING is far safer in my opinion.
10:14 berick whoa, admin was your personal library account?
10:14 Dyrcona No, my personal library was also an admin.
10:14 Dyrcona account^^
10:14 berick ah
10:15 csharp_ we have a GlobalAdmin perm class that is not EVERYTHING/super-user but has the perms needed for system administration
10:15 Dyrcona csharp_: I am rethinking the model.
10:16 Dyrcona csharp_: That is fine. Like I said on Lp, you don't have to use the permission. (I still think superuser should go.)
10:17 csharp_ Dyrcona: so in your case, no generic/default "admin" user, just individuals assigned EVERYTHING that would need to be removed after leaving employment?
10:17 Dyrcona csharp_: Basically, yes, but we usually do more than just remove permissions. In most cases our work account is separate from the patron account, but at MVLC, I had one account that did both.
10:18 csharp_ (in any case, sounds like Diane's situation is squirrely :-/)
10:18 Dyrcona What it sounds like is there are permissions checks that are not using the back end permissions check functions.
10:18 csharp_ Dyrcona: yeah, we have individual accounts that are meant to accommodate both staff and patron functions
10:19 Dyrcona In the case of 1 account serving two functions, the main profile is the patron profile, then you add them to the admin/working group as a second group/profile. When they no longer work there, remove the second profile.
10:20 Dyrcona That's much safer than setting a flag in actor.usr.
10:21 Dyrcona My second promised email about our rusty future might go into some detail about issues I have with the current staff client, but I might save that for yet another email.
10:21 Dyrcona I have examples of bad API design and even worse use or bypassing of existing API.
10:22 berick we have exactly 2 accounts w/ superuser.  one for logging in/testing/etc and one a backend utility account.  not following the use case where a standard human person would get superuser.
10:24 jeff seconding deprecation and possibly eventual removal of actor.usr.superuser, if only for simplicity and for the sake of having permissions in fewer places.
10:24 Dyrcona berick: Doesn't matter if you don't get it. Doesn't mean it's wrong. When someone is on the phone wanting something fixed, that permission comes in handy.
10:25 jeff and yes, both EVERYTHING and superuser should be rarely handed out / relied upon.
10:25 Dyrcona jeff++ both times
10:26 jeff also, last time I looked I think they differ slightly, so that is probably worth looking into again as part of that.
10:26 Dyrcona If they differ right now, that's a bug in my opinion. They should be the same.
10:27 Dyrcona Functionally the same that is.
10:27 berick from the security perspective, the argument boils down to the fact that EVERYTHING can be managed via the UI?
10:27 jeff the UI-side permission checks for disabling menu options or checkboxes (like the circ.collections.exempt checkbox in the user editor) might also benefit from a more convenient way to check perms than always saying "does this user have this perm or do they (have EVERYTHING/superuser status) -- even after deprecating superuser.
10:28 jeff that's not the argument I was making, so I don't know.
10:28 Dyrcona berick: 1 reason. It boils down to something that is added to an account and more easily removed.
10:29 jeff I had it in my head (from a comment, or a bug, or whatnot) that EVERYTHING was the new way to go, so that's the direction I've had in my head. One of the reasons to deprecate actor.usr.superuser in my mind is that it simplifies some things by having permissions exist in one less place -- possibly "exist in one place", but I might be missing something so I wasn't making that assertion yet. :-)
10:29 csharp_ https://git.evergreen-ils.org/?p=Evergreen​.git;a=blob;f=Open-ILS/src/perlmods/lib/Op​enILS/Application/Actor.pm;h=43f3584d73672​c3a6400ab694e658b883238d3f9;hb=HEAD#l1296 is the perl check for superuser/EVERYTHING
10:30 csharp_ I'm confused by the "if" for superuser and the "unless" for EVERYTHING - looks like they aren't the same
10:30 jeff also, I don't have a branch prepared, so I haven't cut my fingers on the sharp edges yet. there might be complications I've not seen or have forgotten since I last looked.
10:30 Dyrcona jeff: There should be a standard function to check permissions. It takes a list and checks for those as well as EVERYTHING. The developer doesn't have to think about it. The checks in AppUtils should be doing this already.
10:31 Dyrcona csharp_: There should 1 piece of code to check permissions that gets used everywhere, then these issues/bugs are avoided.
10:31 jeff another complication that may or may not give reason to keep superuser is that I'm pretty sure EVERYTHING can be scoped, where superuser probably cannot.
10:32 jeff also, nothing says that the "1 piece of code to check permissions" can't check both EVERYTHING and superuser.
10:32 Dyrcona Superuser isn't magical. If some piece code doesn't check it, then whatever was going to happen doesn't happen.
10:32 Dyrcona jeff: That's precisely the point, it should check for EVERYTHING and/or superuser, but I'd like superuser to go away.
10:32 * csharp_ is learning lots of stuff about everyone's assumptions today :-)
10:33 berick yeah most perm checks happen in the stored procs.  that bit of perl is rare.
10:33 Dyrcona berick just scratched off another my scabs wrt Evergreen's "eclectic" code base.
10:34 berick heh
10:34 Dyrcona Again, this is my opinion, but I don't think we should be doing application level permission checks in the database.
10:34 jeff csharp_: that "unless" bit around the check_perms call is because check_perms returns undef on success. if the return value is truthy, it means that the user doesn't have the perm. it's... perhaps less than intuitive.
10:35 csharp_ jeff: ah - out of context it was really throwing me
10:35 Dyrcona Another unpopular opinion: I think we should ditch Perl for the back end (other than utility scripts).
10:36 jeff Dyrcona: I don't object to PL/pgSQL functions being used to test "does this user have this perm at X location" and such. It seems efficient and not an egregious "that doesn't BELONG in the database!" kind of thing.
10:36 csharp_ Dyrcona: preview of your "rusty" email? :-)
10:36 Dyrcona csharp_: yes, but I'll have to write it. It might take me a few more days.
10:38 kworstell_isl joined #evergreen
10:38 Dyrcona berick and sleary may regret that they've opened the floodgates and made me think hard about the things that have annoyed me with Evergreen development over the past 12 years.
10:40 berick not at all.  i appreciate questioning my views
10:44 Dyrcona berick: I think you're really on to something with the Rust code. I've glanced at it. If we decide to go that way, I think we should go all the way to replace all of the C and the majority of Perl with Rust.
10:46 Dyrcona Of course, I'm not saying we do that day 1 of course. We start it with 4.0 and hopefully finish by 5.0, which means we could hit 4.100 before we get there. (Hopefully it doesn' take 50 years.)
10:48 berick Dyrcona: glad to hear it
10:48 * Dyrcona feels extra animated by this conversation. I think it has been a good one, even if we disagree and haven't decided anything.
10:49 Dyrcona I also have a better perspective to approach my email about "the future."
10:50 Dyrcona berick++ csharp_++ jeff++
10:50 berick Dyrcona++
10:51 csharp_ Dyrcona++
10:51 jeff Dyrcona++ berick++ csharp_++ sleary++ ddisbro++
10:52 Dyrcona sleary++ ddisbro++
10:54 Dyrcona i wonder if the superuser Lp bug was changed to 'opinion' and doesn't show up in the bug search.
10:55 Dyrcona I swear tsbere or I opened one years ago, because I seem to recall he mostly agreed that superuser was odd. I'll look.
10:56 Dyrcona Nope. Still didn't find it with expanded statuses. Guess we never made it.
10:59 sleary Dyrcona no, please, do rethink things that are hard for newcomers to figure out!
10:59 sleary +1 to "1 piece of code to check permissions"
11:02 Dyrcona oh! I just realized another advantage of EVERYTHING over superuser. The permission should obey depth. Superuser is global/consoritum wide. You could give some EVERYTHING at their book mobile and no where else.
11:37 eeevil berick: I'm seeing the server-store service's getItemBatch just kinda fail to return some of the settings I ask for. they're definitely set as YAOUSen, the settings editor is showing them. no perms attached or anything "fancy" going on, just asking for 3 related settings, 2 of which exist, and not getting 1 of them
11:37 eeevil have you seen that behavior?
11:38 Dyrcona eeevil: Is this with Ejabberd or Redis? (I want to know if I'm missing some possibly important context, plus I'm just nosy.) :)
11:38 berick eeevil: hm, it does cache stuff in indexeded.  could be related
11:39 berick i haven't seen that otherwise, though
11:39 eeevil Dyrcona: ejabberd
11:39 berick a logout and back in should clear the cache
11:39 eeevil berick: I did flush the Object and Settings indexdbs, and I'm seeing one of the setting values come back...
11:40 berick huh, not sure then
11:41 berick curious if the API call it's making returns the expected results
11:44 eeevil welp, it was log-out-and-back-in (well, flush auth cookies and reload)
11:44 * berick nods
11:45 eeevil I don't like YAOUSen being cached... :(  ... but that's a problem for another day
11:46 berick eeevil: https://bugs.launchpad.net/evergreen/+bug/1975833
11:46 eeevil user settings, WS settings, 100%
11:46 pinesol Launchpad bug 1975833 in Evergreen "IndexedDB caching of settings by Angular (and AngularJS?) should be reconsidered" [Undecided,New]
11:47 eeevil ah, thanks!
11:47 eeevil I'll weigh in there once I'm over this hump
12:01 jeffdavis the amount of open-ils.actor traffic that was generated before settings were cached was unsupportable, if we're going to revisit that decision then we'll need an approach that doesn't result in hundreds of thousands of redundant lookups
12:01 Dyrcona Yeahp. Settings don't change that often, either.
12:03 Dyrcona jeffdavis: Are there cases where the UI was grabbing settings for every grid row or something like that?
12:04 jihpringle joined #evergreen
12:06 jeffdavis no, it was more like looking up timezone or date formats on every page load - some examples in bug 1848550
12:06 pinesol Launchpad bug 1848550 in Evergreen "Cache settings more aggressively in web client" [Undecided,Fix released] https://launchpad.net/bugs/1848550
12:09 Dyrcona Yeah, we've definitely evolved past "works for me."
12:25 collum joined #evergreen
12:34 * eeevil mumbles something about the 2 hard things in software engineering
12:53 Dyrcona @decide local vm or remote vm
12:53 pinesol Dyrcona: go with local vm
12:54 Dyrcona pinesol: I thought you'd say that.
12:54 pinesol Dyrcona: uh huh.. please tell me more about that
13:21 Dyrcona @decide redrust or redrum
13:21 pinesol Dyrcona: go with redrust
13:39 mantis left #evergreen
14:17 Dyrcona Well, that's a new one. First time I've had a remote VM set up fail with a ssh error.
14:21 Dyrcona Why do I think this actually has something to do with the new VM trying to use the same Spice port as another?
14:22 Dyrcona Nope, and all the vms on that host are doing it.
14:23 Dyrcona Crazy. Looks like I lost the host's host key some time today.
14:25 kworstell-isl joined #evergreen
14:31 Dyrcona Oh, I realize what it was. I edited my ssh config and removed an IP address.
14:32 Dyrcona So, it had to get the key for the hostname.
15:02 Dyrcona ooh... Someone is asking for the "read my mind" feature again.
15:04 jvwoolf joined #evergreen
15:42 rfrasur Hmm, we got that request a couple times today.
15:54 jvwoolf left #evergreen
16:00 Dyrcona Is it just me or does Ubuntu get more annoying with every release?
16:16 Dyrcona berick: I think the OpenSRF Redis README could possibly use some clarification around the redis usernames and passwords. I'm assuming that the passwords are on the lines beginning:ACL SETUSER router on >.....
16:17 Dyrcona if that's autogenerated during make or install, then it could be populated in the opensrf_core.xml, too.
16:20 Dyrcona i'll save my other suggestions for Lp.
16:30 Dyrcona Got Could not connect to Redis at private.localhost:6379: Connection refused. I'll have to try again tomorrow.
16:45 berick @later tell Dyrcona opensrf_core.xml is populated w/ the autocreated redis passwords during the Evergreen part of the install.
16:45 pinesol berick: The operation succeeded.
16:46 berick well, unless you already have an opensrf_core.xml in which case it won't clobber it
17:13 ACSpike left #evergreen
17:46 jihpringle joined #evergreen
17:56 jihpringle joined #evergreen
19:11 sleary joined #evergreen
22:14 sleary joined #evergreen
22:20 sleary_ joined #evergreen

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat