Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zimbra-admin-api-js
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Public
zimbra-admin-api-js
Commits
75789ba6
Commit
75789ba6
authored
Apr 19, 2016
by
Elias Nahum
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix login when session expires
parent
4a7a42ce
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
49 additions
and
12 deletions
+49
-12
login.jsx
src/components/login/login.jsx
+26
-5
message_bar.jsx
src/components/message_bar.jsx
+5
-2
index.jsx
src/index.jsx
+7
-2
_flash_alert.scss
src/sass/components/_flash_alert.scss
+5
-0
client.jsx
src/utils/client.jsx
+6
-3
No files found.
src/components/login/login.jsx
View file @
75789ba6
...
@@ -5,7 +5,10 @@ import $ from 'jquery';
...
@@ -5,7 +5,10 @@ import $ from 'jquery';
import
React
from
'react'
;
import
React
from
'react'
;
import
{
browserHistory
}
from
'react-router'
;
import
{
browserHistory
}
from
'react-router'
;
import
UserStore
from
'../../stores/user_store.jsx'
;
import
Constants
from
'../../utils/constants.jsx'
;
import
*
as
Client
from
'../../utils/client.jsx'
;
import
*
as
Client
from
'../../utils/client.jsx'
;
import
Panel
from
'../panel.jsx'
;
import
Panel
from
'../panel.jsx'
;
import
LoginEmail
from
'./login_email.jsx'
;
import
LoginEmail
from
'./login_email.jsx'
;
import
MessageBar
from
'../message_bar.jsx'
;
import
MessageBar
from
'../message_bar.jsx'
;
...
@@ -15,9 +18,10 @@ export default class Login extends React.Component {
...
@@ -15,9 +18,10 @@ export default class Login extends React.Component {
super
(
props
);
super
(
props
);
this
.
submit
=
this
.
submit
.
bind
(
this
);
this
.
submit
=
this
.
submit
.
bind
(
this
);
this
.
onUserChange
=
this
.
onUserChange
.
bind
(
this
);
this
.
state
=
{
this
.
state
=
{
doneCheckLogin
:
false
user
:
null
};
};
}
}
componentWillUmount
()
{
componentWillUmount
()
{
...
@@ -29,10 +33,18 @@ export default class Login extends React.Component {
...
@@ -29,10 +33,18 @@ export default class Login extends React.Component {
browserHistory
.
push
(
'/accounts'
);
browserHistory
.
push
(
'/accounts'
);
}
else
{
}
else
{
$
(
'body'
).
addClass
(
'blank'
);
$
(
'body'
).
addClass
(
'blank'
);
this
.
setState
({
doneCheckLogin
:
true
});
//eslint-disable-line react/no-did-mount-set-state
}
}
});
});
}
}
onUserChange
()
{
const
user
=
UserStore
.
getCurrentUser
();
this
.
setState
({
user
});
if
(
user
)
{
browserHistory
.
push
(
'/accounts'
);
}
}
submit
(
email
,
password
)
{
submit
(
email
,
password
)
{
var
state
=
this
.
state
;
var
state
=
this
.
state
;
...
@@ -60,8 +72,8 @@ export default class Login extends React.Component {
...
@@ -60,8 +72,8 @@ export default class Login extends React.Component {
);
);
}
}
render
()
{
render
()
{
if
(
!
this
.
state
.
doneCheckLogin
)
{
if
(
this
.
state
.
user
)
{
return
<
div
/
>;
return
<
div
>
Done check login
</
div
>;
}
}
let
loginError
;
let
loginError
;
...
@@ -74,6 +86,15 @@ export default class Login extends React.Component {
...
@@ -74,6 +86,15 @@ export default class Login extends React.Component {
canClose=
{
false
}
canClose=
{
false
}
/>
/>
);
);
}
else
if
(
this
.
props
.
location
.
query
.
error
===
Constants
.
ZimbraCodes
.
AUTH_EXPIRED
)
{
loginError
=
(
<
MessageBar
message=
'Tu sesión a expirado. Por favor ingresa nuevamente.'
type=
'info'
position=
'relative'
canClose=
{
false
}
/>
);
}
else
{
}
else
{
loginError
=
(
loginError
=
(
<
MessageBar
<
MessageBar
...
@@ -116,5 +137,5 @@ export default class Login extends React.Component {
...
@@ -116,5 +137,5 @@ export default class Login extends React.Component {
Login
.
defaultProps
=
{
Login
.
defaultProps
=
{
};
};
Login
.
propTypes
=
{
Login
.
propTypes
=
{
params
:
React
.
PropTypes
.
object
.
isRequired
location
:
React
.
PropTypes
.
object
.
isRequired
};
};
src/components/message_bar.jsx
View file @
75789ba6
...
@@ -64,7 +64,10 @@ export default class MessageBar extends React.Component {
...
@@ -64,7 +64,10 @@ export default class MessageBar extends React.Component {
let
icon
;
let
icon
;
switch
(
this
.
props
.
type
)
{
switch
(
this
.
props
.
type
)
{
case
'error'
:
case
'error'
:
icon
=
(<
i
className=
'fa fa fa-exclamation-circle'
></
i
>);
icon
=
(<
i
className=
'fa fa-exclamation-circle'
></
i
>);
break
;
case
'info'
:
icon
=
(<
i
className=
'fa fa-info-circle'
></
i
>);
break
;
break
;
case
'success'
:
case
'success'
:
break
;
break
;
...
@@ -103,7 +106,7 @@ MessageBar.defaultProps = {
...
@@ -103,7 +106,7 @@ MessageBar.defaultProps = {
MessageBar
.
propTypes
=
{
MessageBar
.
propTypes
=
{
message
:
React
.
PropTypes
.
string
.
isRequired
,
message
:
React
.
PropTypes
.
string
.
isRequired
,
type
:
React
.
PropTypes
.
oneOf
([
'success'
,
'error'
,
'warning'
]),
type
:
React
.
PropTypes
.
oneOf
([
'success'
,
'error'
,
'warning'
,
'info'
]),
position
:
React
.
PropTypes
.
oneOf
([
'absolute'
,
'fixed'
,
'relative'
,
'static'
,
'inherit'
]),
position
:
React
.
PropTypes
.
oneOf
([
'absolute'
,
'fixed'
,
'relative'
,
'static'
,
'inherit'
]),
canClose
:
React
.
PropTypes
.
bool
,
canClose
:
React
.
PropTypes
.
bool
,
autoclose
:
React
.
PropTypes
.
bool
,
autoclose
:
React
.
PropTypes
.
bool
,
...
...
src/index.jsx
View file @
75789ba6
...
@@ -23,6 +23,7 @@ import EditMailBox from './components/mailbox/edit_mailbox.jsx';
...
@@ -23,6 +23,7 @@ import EditMailBox from './components/mailbox/edit_mailbox.jsx';
import
*
as
Client
from
'./utils/client.jsx'
;
import
*
as
Client
from
'./utils/client.jsx'
;
import
*
as
Utils
from
'./utils/utils.jsx'
;
import
*
as
Utils
from
'./utils/utils.jsx'
;
import
Constants
from
'./utils/constants.jsx'
;
import
$
from
'jquery'
;
import
$
from
'jquery'
;
import
React
from
'react'
;
import
React
from
'react'
;
...
@@ -72,8 +73,12 @@ function onPreLoggedIn(nextState, replace, callback) {
...
@@ -72,8 +73,12 @@ function onPreLoggedIn(nextState, replace, callback) {
()
=>
{
()
=>
{
return
callback
();
return
callback
();
},
},
()
=>
{
(
err
)
=>
{
return
browserHistory
.
push
(
'/login'
);
let
query
;
if
(
err
.
extra
&&
err
.
extra
.
code
===
Constants
.
ZimbraCodes
.
AUTH_EXPIRED
)
{
query
=
`?error=
${
Constants
.
ZimbraCodes
.
AUTH_EXPIRED
}
`
;
}
browserHistory
.
push
(
`/login
${
query
}
`
);
});
});
});
});
}
}
...
...
src/sass/components/_flash_alert.scss
View file @
75789ba6
...
@@ -9,6 +9,11 @@
...
@@ -9,6 +9,11 @@
color
:
$white
;
color
:
$white
;
}
}
.flash-info
{
background
:
$color-blue
;
color
:
$white
;
}
.flash-warning
{
.flash-warning
{
background
:
$bg-warning-color
;
background
:
$bg-warning-color
;
color
:
$white
;
color
:
$white
;
...
...
src/utils/client.jsx
View file @
75789ba6
...
@@ -15,9 +15,9 @@ import Constants from './constants.jsx';
...
@@ -15,9 +15,9 @@ import Constants from './constants.jsx';
// función que maneja el error como corresponde
// función que maneja el error como corresponde
function
handleError
(
methodName
,
err
)
{
function
handleError
(
methodName
,
err
)
{
if
(
err
.
extra
&&
if
(
err
.
extra
&&
(
err
.
extra
.
code
===
Constants
.
ZimbraCodes
.
AUTH_
_REQU
IRED
||
err
.
extra
.
code
===
Constants
.
ZimbraCodes
.
AUTH__REQUIRED
)
(
err
.
extra
.
code
===
Constants
.
ZimbraCodes
.
AUTH_
EXP
IRED
||
err
.
extra
.
code
===
Constants
.
ZimbraCodes
.
AUTH__REQUIRED
)
)
{
)
{
Utils
.
setCookie
(
'token'
,
''
,
-
1
);
logout
(
);
return
err
;
return
err
;
}
}
...
@@ -118,9 +118,12 @@ export function logout(callback) {
...
@@ -118,9 +118,12 @@ export function logout(callback) {
if
(
cookie
)
{
if
(
cookie
)
{
Utils
.
setCookie
(
'token'
,
''
,
-
1
);
Utils
.
setCookie
(
'token'
,
''
,
-
1
);
}
}
ZimbraStore
.
setCurrent
(
null
);
GlobalActions
.
saveUser
(
null
);
GlobalActions
.
saveUser
(
null
);
return
callback
();
if
(
callback
&&
typeof
callback
===
'function'
)
{
callback
();
}
}
}
export
function
isLoggedIn
(
callback
)
{
export
function
isLoggedIn
(
callback
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment