/* * Minio Cloud Storage (C) 2016, 2018 Minio, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import React from "react" import { connect } from "react-redux" import classNames from "classnames" import logo from "../../img/logo.svg" import Alert from "./Alert" import * as actionsAlert from "../actions/alert" import InputGroup from "../components/InputGroup" import { minioBrowserPrefix } from "../constants" import web from "../web" import { Redirect } from "react-router-dom" export class Login extends React.Component { handleSubmit(event) { event.preventDefault() const { dispatch, history } = this.props let message = "" if (!document.getElementById("accessKey").value) { message = "Secret Key cannot be empty" } if (!document.getElementById("secretKey").value) { message = "Access Key cannot be empty" } if (message) { dispatch( actionsAlert.set({ type: "danger", message }) ) return } web .Login({ username: document.getElementById("accessKey").value, password: document.getElementById("secretKey").value }) .then(res => { history.push(minioBrowserPrefix) }) .catch(e => { dispatch( actionsAlert.set({ type: "danger", message: e.message }) ) }) } componentWillMount() { const { dispatch } = this.props // Clear out any stale message in the alert of previous page dispatch(actionsAlert.clear()) document.body.classList.add("is-guest") } componentWillUnmount() { document.body.classList.remove("is-guest") } clearAlert() { const { dispatch } = this.props dispatch(actionsAlert.clear()) } render() { const { alert } = this.props if (web.LoggedIn()) { return } let alertBox = // Make sure you don't show a fading out alert box on the initial web-page load. if (!alert.message) alertBox = "" return (
{alertBox}
{window.location.host}
) } } export default connect(state => state)(Login)