function [username,password]=GetAuthentication(defaultuser)
%GetAuthentication prompts a username and password from a user and hides the
% password input by *****
%
% [user,password] = GetAuthentication;
% [user,password] = GetAuthentication(defaultuser);
%
% arguments:
% defaultuser - string for default name
%
% results:
% username - string for the username
% password - password as a string
%
% Created by Felix Ruhnow, MPI-CBG Dresden
% Version 1.00 - 20th February 2009
%
if nargin==0
defaultuser='';
end
hAuth.fig = figure('Menubar','none','Units','normalized','Resize','off','NumberTitle','off', ...
'Name','Authentication','Position',[0.4 0.4 0.2 0.2],'WindowStyle','normal');
uicontrol('Parent',hAuth.fig,'Style','text','Enable','inactive','Units','normalized','Position',[0 0 1 1], ...
'FontSize',12);
uicontrol('Parent',hAuth.fig,'Style','text','Enable','inactive','Units','normalized','Position',[0.1 0.8 0.8 0.1], ...
'FontSize',12,'String','Username:','HorizontalAlignment','left');
hAuth.eUsername = uicontrol('Parent',hAuth.fig,'Style','edit','Tag','username','Units','normalized','Position',[0.1 0.675 0.8 0.125], ...
'FontSize',12,'String',defaultuser,'BackGroundColor','white','HorizontalAlignment','left');
uicontrol('Parent',hAuth.fig,'Style','text','Enable','inactive','Units','normalized','Position',[0.1 0.5 0.8 0.1], ...
'FontSize',12,'String','Password:','HorizontalAlignment','left');
hAuth.ePassword = uicontrol('Parent',hAuth.fig,'Style','edit','Tag','password','Units','normalized','Position',[0.1 0.375 0.8 0.125], ...
'FontSize',12,'String','','BackGroundColor','white','HorizontalAlignment','left');
uicontrol('Parent',hAuth.fig,'Style','pushbutton','Tag','OK','Units','normalized','Position',[0.1 0.05 0.35 0.2], ...
'FontSize',12,'String','OK','Callback','uiresume;');
uicontrol('Parent',hAuth.fig,'Style','pushbutton','Tag','Cancel','Units','normalized','Position',[0.55 0.05 0.35 0.2], ...
'FontSize',12,'String','Cancel','Callback',@AbortAuthentication);
set(hAuth.fig,'CloseRequestFcn',@AbortAuthentication)
set(hAuth.ePassword,'KeypressFcn',@PasswordKeyPress)
setappdata(0,'hAuth',hAuth);
uicontrol(hAuth.eUsername);
uiwait;
username = get(hAuth.eUsername,'String');
password = get(hAuth.ePassword,'UserData');
delete(hAuth.fig);
function PasswordKeyPress(hObject,event)
hAuth = getappdata(0,'hAuth');
password = get(hAuth.ePassword,'UserData');
switch event.Key
case 'backspace'
password = password(1:end-1);
case 'return'
uiresume;
return;
otherwise
password = [password event.Character];
end
set(hAuth.ePassword,'UserData',password)
set(hAuth.ePassword,'String',char('*'*sign(password)))
function AbortAuthentication(hObject,event)
hAuth = getappdata(0,'hAuth');
set(hAuth.eUsername,'String','');
set(hAuth.ePassword,'UserData','');
uiresume;