Closed jarib closed 11 years ago
Vi bør teste ut litt forskjellige alternativer, f.eks.
Representative
Representative < User
First attempt at using STI with Representative < User
here:
https://github.com/jonathanronen/hdo-site/tree/398_single_table_approach
Issues with this approach:
friendly_id
used in Representative
but not in HdoUser
needs to be defined in the User
superclass.HdoUser
and Representative
) don't really have any functionality in common, which makes me think it doesn't make any sense at all to have them inherit the same User
class. The entire workflow of the two user groups is different. Probably different controllers altogether.Kult at du fikk begynt på dette!
En tredje approach vi kanskje kan sjekke ut er å beholde User
og Representative
som separate enheter og heller ha en link mellom de (User.belongs_to :representative
). Men det føles litt skittent. Er også åpen for andre forslag selvsagt, - er det noen andre systemer (kanskje fra helt andre domener) vi kan sjekke ut hvordan gjør dette?
Not all representatives have an email in our database. Do we add these manually?
Epostaddressene er skrapet fra Stortinget og finnes på de 169 representantene som er faste. Tror det er en grei start at bare de faste har tilgang.
Should all email-holding representatives have access?
Jepp, de bør hvertfall bli tilbudt muligheten via epost.
@jonathanronen: Vi har bestemt oss for å prioritere denne litt ned fram til slutten av mars. Pinger deg på noen andre saker.. :beers:
Attempt using devise on Representative
here:
https://github.com/jonathanronen/hdo-site/tree/398_devise_for_representatives
This is relatively painless compared to using STI and seems cleaner to me.
However an issue to investigate closer is authorization (using pundit
).
Pundit uses current_user
internally. Using this approach, a signed in representative is signed_in?
, but current_user
will be nil
, while current_representative
will be correct.
Need to find a clear way of specifying policies for both User
and Representative
classes.
Nice, this does look like a better approach. Pundit adds very few methods so we can probably remove include Pundit
and add our own #policy
method in ApplicationController
that checks for current_user || current_representative
. I think this would also work, but it's probably less clear:
def current_user
super || current_representative
end
Flytter denne ut av milestone siden Jonathan er på ferie - tar opp tråden rett over påske.
Dette er på plass, lukker saken.
Hvordan kan vi gjøre dette med devise, gitt at vi per i dag har en
User
og enRepresentative
-tabell?Jeg ser for meg at vi ved lansering av tjenesten sender en epost til alle representantene hvor de får mulighet til å «aktivere» sin HDO-profil.
@jarib @jonathanronen