Merge lp:~nonamenoname/pantheon-greeter/pantheon-greeter-auth-fix into lp:~teemperor/pantheon-greeter/new-ui

Proposed by No Name
Status: Rejected
Rejected by: Raphael Isemann
Proposed branch: lp:~nonamenoname/pantheon-greeter/pantheon-greeter-auth-fix
Merge into: lp:~teemperor/pantheon-greeter/new-ui
Diff against target: 143 lines (+75/-33)
1 file modified
src/PantheonGreeter.vala (+75/-33)
To merge this branch: bzr merge lp:~nonamenoname/pantheon-greeter/pantheon-greeter-auth-fix
Reviewer Review Type Date Requested Status
Cody Garver (community) Needs Fixing
Raphael Isemann Pending
Review via email: mp+200346@code.launchpad.net

Description of the change

fixing auth, i wonder how i could work
now allows multi factor auth

To post a comment you must log in.
Revision history for this message
Cody Garver (codygarver) wrote :

Re-target this merge request to lp:pantheon-greeter because this branch eventually became trunk.

review: Needs Fixing

Unmerged revisions

235. By No Name

clean up, add instructions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/PantheonGreeter.vala'
2--- src/PantheonGreeter.vala 2013-11-27 22:30:45 +0000
3+++ src/PantheonGreeter.vala 2014-01-02 21:24:29 +0000
4@@ -40,6 +40,8 @@
5 //from this width on the clock wont fit anymore
6 const int NO_CLOCK_WIDTH = 920;
7
8+ bool prompted = false;
9+
10 public PantheonGreeter () {
11 settings = new Settings ("org.pantheon.desktop.greeter");
12 greeter = new LightDM.Greeter ();
13@@ -66,16 +68,18 @@
14 PantheonUser.load_default_avatar ();
15
16 userlist.user_changed.connect ((user) => {
17+ prompted = false;
18+ start_auth (user);
19 wallpaper.set_wallpaper (user.background);
20 indicators.user_changed_cb(user);
21 loginbox.set_user (user);
22 });
23
24- greeter.show_message.connect (wrong_pw);
25- greeter.show_prompt.connect (send_pw);
26- greeter.authentication_complete.connect (authenticated);
27+ greeter.show_message.connect (show_message);
28+ greeter.show_prompt.connect (show_prompt);
29+ greeter.authentication_complete.connect (authentication_complete);
30
31- loginbox.login_requested.connect (authenticate);
32+ loginbox.login_requested.connect (login);
33
34 /*activate the numlock if needed*/
35 var activate_numlock = settings.get_boolean ("activate-numlock");
36@@ -203,41 +207,79 @@
37 return true;
38 }
39
40- void authenticate () {
41- loginbox.working = true;
42- if (loginbox.current_user.is_guest ())
43+ void start_auth (PantheonUser user) {
44+ if (user.usertype == UserType.NORMAL) {
45+ var lightdm_user = user.get_lightdm_user ();
46+ greeter.authenticate (lightdm_user.name);
47+ } else if (user.usertype == UserType.GUEST) {
48 greeter.authenticate_as_guest ();
49- else
50- greeter.authenticate (loginbox.get_username ());
51- }
52-
53- void wrong_pw (string text, LightDM.MessageType type) {
54- loginbox.wrong_pw ();
55- }
56-
57- void send_pw (string text, LightDM.PromptType type) {
58- greeter.respond (loginbox.get_password ());
59- }
60-
61- void authenticated () {
62- loginbox.working = false;
63-
64- settings.set_string ("last-user", loginbox.current_user.name);
65-
66- if (greeter.is_authenticated) {
67+ } else if (user.usertype == UserType.MANUAL) {
68+ warning("manual unsupported");
69+ } else {
70+ warning("unsupported");
71+ }
72+ }
73+
74+ void start_session () {
75+ try {
76 fadein.show ();
77 fadein.animate (Clutter.AnimationMode.EASE_OUT_QUAD, 200, opacity:255);
78-
79- try {
80- greeter.start_session_sync (loginbox.current_session);
81- } catch (Error e) {
82- warning (e.message);
83- }
84-
85- Gtk.main_quit ();
86+
87+ greeter.start_session_sync (loginbox.current_session);
88+ } catch (Error e) {
89+ warning (e.message);
90+ }
91+
92+ Gtk.main_quit ();
93+ }
94+
95+ void login () {
96+
97+ if (greeter.is_authenticated) {
98+ message("Login start session");
99+ start_session ();
100+ } else if (greeter.in_authentication) {
101+ greeter.respond (loginbox.get_password ());
102 } else {
103 loginbox.wrong_pw ();
104 }
105+
106+
107+ }
108+
109+ void show_message (string text, LightDM.MessageType type) {
110+ if (type == LightDM.MessageType.INFO) {
111+ // for now skip
112+ } else if (type == LightDM.MessageType.ERROR) {
113+ // for now skip
114+ }
115+ }
116+
117+ void show_prompt (string text, LightDM.PromptType type) {
118+ prompted = true;
119+
120+
121+ if (type == LightDM.PromptType.QUESTION) {
122+ // for now do nothing, just grab focus to password entry
123+ } else if (type == LightDM.PromptType.SECRET) {
124+ // here we should update hint = text , focus entry
125+ }
126+ }
127+
128+ void authentication_complete () {
129+ message ("auth complete");
130+
131+ if (greeter.is_authenticated) {
132+ if (prompted) {
133+ message("authentication start session");
134+ start_session ();
135+ }
136+
137+
138+ } else {
139+ //reset login
140+ }
141+
142 }
143 }
144

Subscribers

People subscribed via source and target branches

to all changes: