Beispiel #1
0
from application import Module

__author__ = 'newbie'

api_v1 = Module('api_v1', __name__, url_prefix='/api/v1')

from . import users
from . import news
from . import comments
Beispiel #2
0
from flask import render_template, redirect, request, url_for, abort
from flask.json import jsonify

from application import Module
from application.utils.validator import Validator
from application.tasks.email import send_password_restore_ref
from application.models.user import User, PasswordRestore
from application.bl.users import restore_password


module = Module('password', __name__, url_prefix='/password')


@module.get("/restore")
def restore():
    return render_template('password/restore.html')


@module.post('/restore')
def restore_post():
    v = Validator(request.form)
    v.field('email').required().email()
    if v.is_valid():
        email = request.form.get("email")
        user = User.get_by_email(email)
        if user:
            token = PasswordRestore.add_token(user)
            print(token)
            send_password_restore_ref.delay(user.email, user.full_name, token)
        return jsonify({"status": "ok"})
    return jsonify({"status": "fail",
Beispiel #3
0
from flask import render_template, redirect, request, url_for
from flask.json import jsonify

from application import Module
from application.utils.validator import Validator
from application.utils import auth


module = Module('login', __name__, url_prefix='/login')


@module.get("/")
def login():
    return render_template('login.html')


@module.post("/")
def login_post():
    v = Validator(request.form)
    v.field("login").required()
    v.field("password").required()
    if v.is_valid():
        login = v.valid_data.login
        password = v.valid_data.password
        if auth.service.login(login, password):
            return jsonify({"status": "ok"})
        else:
            v.add_error('login', 'Логин или пароль не верен', 'wrong_login_or_password')
    return jsonify({"status": "fail",
                    "errors": v.errors})
Beispiel #4
0
from flask import request
from flask.json import jsonify

from application import Module, db
from application.utils import auth
from application.utils.validator import Validator
from application.models.vote import Vote

module = Module('vote', __name__, url_prefix='/vote')


@module.delete("/<int:id>")
def delete(id):
    user = auth.service.get_user()
    if user.is_authorized():
        vote = Vote.get(id)
        if vote and vote.user == user:
            db.session.delete(vote)
            db.session.flush()
            entity = vote.get_entity()

            if entity:
                entity.after_delete_vote(vote)

            db.session.commit()
            return jsonify({'status': 'ok',
                            'vote': vote.as_dict()})

    return jsonify({'status': 'fail'})

Beispiel #5
0
from flask import request, render_template, redirect, url_for, abort
from collections import defaultdict

from application import Module, ldap, db
from application.utils import auth
from application.models.department import Department
from application.models.user import User
from application.utils.datatables_sqlalchemy.datatables import row2dict

module = Module('company_structure', __name__, url_prefix='/structure')


@module.before_request
def before_request():
    user = auth.service.get_user()
    if not user.is_authorized():
        return redirect(url_for('login.login'))


def get_departments(parent_id=None):
    dep_list = []
    departments = db.session.query(Department).filter_by(
        parent_id=parent_id).all()
    for dep in departments:
        dep_dict = row2dict(dep)
        if dep_dict["user_id"] != 'None':
            user = User.get_by_id(dep_dict["user_id"])
            dep_dict["user"] = row2dict(user)
        print(dep_dict)
        dep_dict['dep_list'] = get_departments(dep.id)
        dep_list.append(dep_dict)
Beispiel #6
0
from flask import request, render_template, abort, redirect, url_for
from flask.json import jsonify

from application import Module
from application.utils.validator import Validator
from application.utils import auth
from application.utils.widget import widget
from application.models.user import User
from application.models.department import Department
from application.db import db
from application.bl.users import modify_password, PasswordError, DataProcessingError, update_user
from application.utils.datatables_sqlalchemy.datatables import ColumnDT, DataTables
from application.models.view_users4search import ViewUsers4Search

module = Module('user', __name__, url_prefix='/user')


@module.before_request
def before_request():
    user = auth.service.get_user()
    if not user.is_authorized():
        return redirect(url_for('login.login'))


@module.get("/profile")
@module.get("/profile/<int:user_id>")
def profile(user_id=None):
    user = auth.service.get_user() if user_id is None else User.get_by_id(
        user_id)
    if user is None:
        abort(404)
Beispiel #7
0
from flask import render_template, redirect, url_for

from application import Module
from application.utils import auth

module = Module('admin', __name__, url_prefix='/admin')


@module.before_request
def before_request():
    user = auth.service.get_user()
    if not user.is_authorized():
        return redirect(url_for('login.login'))
    if not user.is_admin and ('moderator' not in [r.name for r in user.roles]):
            return render_template('403.html')


@module.get('/')
def admin_index():
    return redirect(url_for('admin.s_users'))


@module.get("/logout")
def logout():
    return redirect(url_for('login.login'))
Beispiel #8
0
import datetime
from PIL import Image
from application.models.file import File
from application.utils import image
from collections import defaultdict
import json
from application import Module, db
from application.models.comment import Comment
from application.utils import auth
from application.utils.validator import Validator
from flask import request
from flask.json import jsonify

module = Module('comment', __name__, url_prefix='/comment')


@module.delete("/<int:id>")
def delete(id):
    user = auth.service.get_user()
    if user.is_authorized():
        comment = Comment.get(id)
        if comment and (user.is_admin or comment.author == user
                        or 'manage_comments' in user.get_permissions()):
            comment_json = None

            def delete_parent(comment):
                should_delete = True

                if comment is not None and comment.status == Comment.Status.DELETED:
                    for quote in comment.quotes:
                        if quote.status != Comment.Status.DELETED:
Beispiel #9
0
from flask import render_template, request, abort, redirect, url_for
from flask.json import jsonify

from application import Module, db
from application.utils.decorators import requires_permissions
from application.utils import auth
from application.utils.validator import Validator
from application.models.user import User
from application.models.news import News
from application.models.news_category import NewsCategory
from application.models.news_tag import NewsTag
from application.views.main import main
from application.tasks.email import send_news_notification

module = Module('news', __name__, url_prefix='/news')

@module.before_request
def before_request():
    user = auth.service.get_user()
    if not user.is_authorized():
        return redirect(url_for('login.login'))


@main.get("/")
@module.get('/')
def list_all():
    news = News.all()
    return render_template('news/all.html', **{'news': news})

@module.get('/category/<int:id>')
Beispiel #10
0
from application.models.community import Community, CommunityMember
from application.models.file import File
from application import Module, db
from application.models.post import Post
from application.models.user import User
from application.utils import auth
from application.utils.decorators import requires_permissions
from application.utils.validator import Validator
from flask import render_template, request, abort, redirect, url_for
from flask.json import jsonify
from application.views.main import main
from application import utils

module = Module('community', __name__, url_prefix='/community')

@module.before_request
def before_request():
    user = auth.service.get_user()
    if not user.is_authorized():
        return redirect(url_for('login.login'))


@main.get('/communities')
def list_communities():
    communities = Community.all_active()
    return render_template('community/all.html', **{'communities': communities})

@main.get('/communities/mine')
def mine_communities():
    communities = Community.all_mine()
    return render_template('community/all.html', **{'communities': communities})
Beispiel #11
0
from datetime import datetime
import re
import uuid
import os
from application import Module
from application.utils.validator import Validator
from flask import request, send_from_directory, abort
from flask.json import jsonify
import application

module = Module('file', __name__, url_prefix='/file')


@module.get("/<path:filepath>")
def get(filepath):
    path = os.path.join(application.files_folder, os.path.dirname(filepath))

    name = os.path.basename(filepath)
    name = re.sub(r'(.*)\._(.*)_\.(.*)', r'\1.\3', name)
    full_path = os.path.join(path, name)

    if os.path.exists(full_path):
        if filepath.startswith('uploads/'):
            mdate = datetime.fromtimestamp(os.stat(full_path).st_mtime)
            delta = datetime.now().date() - mdate.date()
            if delta.days > 0:
                os.system('touch %s' % full_path)  # Update modified date
        return send_from_directory(path, name)
    else:
        abort(404)