1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- # -*- coding: utf-8 -*-
- """
- walle-web
- :copyright: © 2015-2017 walle-web.io
- :created time: 2017-03-25 11:15:01
- :author: wushuiyong@walle-web.io
- """
- import os
- from flask import request, abort, session, current_app
- from flask_login import current_user, login_required
- from walle.api.api import SecurityResource
- from walle.model.deploy import TaskRecordModel
- from walle.model.user import MenuModel
- from walle.model.user import UserModel
- from walle.service import emails
- from walle.service.deployer import Deployer
- from walle.service.rbac.role import *
- from werkzeug.utils import secure_filename
- from walle.service.extensions import permission
- class GeneralAPI(SecurityResource):
- actions = ['menu', 'websocket']
- @permission.gte_develop_or_uid
- def get(self, action):
- """
- fetch role list or one role
- :return:
- """
- if action in self.actions:
- self_action = getattr(self, action.lower(), None)
- return self_action()
- else:
- abort(404)
- def post(self, action):
- """
- fetch role list or one role
- :return:
- """
- if action == 'avatar':
- return self.avater()
- def menu(self):
- role = 10
- user = UserModel(id=current_user.id).item()
- menu = MenuModel().menu(role=role)
- space = {
- 'current': '',
- 'available': '',
- }
- # TODO
- # 超管不需要展示空间列表
- if current_user.role <> SUPER:
- space = {
- 'current': session['space_info'],
- 'available': session['space_list'],
- }
- data = {
- 'user': user,
- 'menu': menu,
- 'space': space,
- }
- return self.render_json(data=data)
- def mail(self):
- ret = emails.send_email('wushuiyong@renrenche.com', 'email from service@walle-web.io', 'xxxxxxx', 'yyyyyyy')
- return self.render_json(data={
- 'avatar': 'emails.send_email',
- 'done': ret,
- })
- def websocket(self, task_id=None):
- task_id = 12
- wi = Deployer(task_id)
- ret = wi.walle_deploy()
- record = TaskRecordModel().fetch(task_id)
- return self.render_json(data={
- 'command': ret,
- 'record': record,
- })
|