Draft: Add email address to user state struct
1 unresolved thread
1 unresolved thread
The mailman integration requires an email address to be available to check if an Arch staff is a member of a mailing list.
Current plan:
Only implement the functionality for the @archlinux.org email addresses leave the other addresses alone for now, so:
- Add arch_email field to Keycloak
- Implement gluebuddy subscribing
- Write wiki instructions about how to manage your subscription (so turn off delivery of @archlinux.org email) to Staff Services
- At a later time consider adding a mailinglist field which can use a personal email address as the main keycloak email address can be changed by users themself.
Edited by Jelle van der Waa
Merge request reports
Activity
requested review from @anthraxx
Can be locally ran with:
ssh -L 8001:localhost:8001 root@lists.archlinux.org
And then
cargo run plan
. This still requires keycloak to have the correct email addresses as not all staff use @archlinux.org for their account....Mailman Staff mailing list 'staff.lists.archlinux.org' group members has changed! Plan: 46 to add, 0 to change, 0 to destroy. ------------------------------------------------------------------------ Mailman Staff mailing list 'arch-dev-public.lists.archlinux.org' group members has changed! Plan: 54 to add, 0 to change, 0 to destroy. ------------------------------------------------------------------------
added 45 commits
-
dd009f0f...08254791 - 38 commits from branch
main
- c581673d - README.md: fix typo protocol
- 99f53cd0 - Add email address to user state struct
- ba8adf89 - Make it run a bit faster by commenting out Gitlab checks
- ba882690 - Document mailman env variables
- 4dd45024 - WIP: implement membership checks
- 7edd7175 - keycloak: fetch arch_email attribute
- a5031d94 - WIP: subscription/apply mailman
Toggle commit list-
dd009f0f...08254791 - 38 commits from branch
- src/components/mailman/core.rs 0 → 100644
86 }) 87 } 88 89 pub fn membership_url(&self, user: &User) -> String { 90 format!( 91 "{}/3.1/addresses/{}/memberships", 92 &self.url, user.arch_email 93 ) 94 } 95 96 pub async fn gather(&self) -> Result<()> { 97 info!("Gathering Mailman state"); 98 // http://localhost:8001/3.1/addresses/jelle@archlinux.org/memberships | jq -r '.entries[].list_id' 99 let mut state = self.state.lock().await; 100 101 for user in &mut state.users.values_mut() {
Please register or sign in to reply