def get(self, *args, **kwargs):
        """admin only"""
        result = {
            "errno": 0,
            "reason": "",
            "user_info": []
        }

        if not self.current_user.admin:
            return self.send_error(status_code=404)

        key = self.get_argument("key", default="")

        if not key:
            users = get_all_user(self.session)
            for user in users:
                result["user_info"].append(dict(
                    id=user.id,
                    email=user.email,
                    name=user.username,
                    dept=user.dept,
                    type=user.type,
                    manager=user.manager,
                    blacklist=user.blacklist,
                    key=user.key,
                    city=user.city,
                    building=user.building,
                    seat=user.seat
                ))
        else:
            user = get_user_by_key(self.session, key)
            if not user:
                result["errno"] = 1
                result["reason"] = "invalid key"
            else:
                result["user_info"] = [dict(
                    id=user.id,
                    email=user.email,
                    name=user.username,
                    dept=user.dept,
                    type=user.type,
                    manager=user.manager,
                    blacklist=user.blacklist,
                    key=user.key,
                    city=user.city,
                    building=user.building,
                    seat=user.seat
                )]
        return self.write(json.dumps(result))
    def get(self, *args, **kwargs):
        """admin only"""
        template_param = {
            "page_tab": "user_manage",
            "current_user": None,
            "users": []
        }

        if not self.current_user.admin:
            return self.send_error(status_code=404)
        else:
            template_param["current_user"] = self.current_user

        template_param["users"] = get_all_user(self.session)
        template_param["current_user"] = self.current_user
        self.render("page/user_manage.html", **template_param)