def post(self): namespace_manager.set_namespace('') user_id = self.request.get_range('user_id') user = CompanyUser.get_by_id(user_id) rights = [] for right in CompanyUser.ALL_RIGHTS_BITS: confirmed = self.request.get(str(right)) if confirmed: rights.append(right) user.rights = CompanyUser.make_mask(rights) user.put() self.redirect('/company/user/list')
def post(self): rights = [] for right in CompanyUser.ALL_RIGHTS_BITS: confirmed = self.request.get(str(right)) if confirmed: rights.append(right) login = self.request.get('login') values = { 'namespace': namespace_manager.get_namespace(), 'login': login, 'password_raw': self.request.get('password'), 'rights': CompanyUser.make_mask(rights), } namespace_manager.set_namespace('') success, user = CompanyUser.create_user(login, **values) self.redirect('/company/user/list')
def user(self): current_namespace = namespace_manager.get_namespace() namespace_manager.set_namespace('') logging.info(self.request.cookies) user_dict = self.auth.get_user_by_session() namespace_manager.set_namespace(current_namespace) if user_dict is None: return None return CompanyUser.get_by_id(user_dict["user_id"])
def get(self): namespace_manager.set_namespace('') user_id = self.request.get_range('user_id') user = CompanyUser.get_by_id(user_id) rights = [] for right in CompanyUser.ALL_RIGHTS_BITS: rights.append({ 'name': MAP_RIGHTS[right], 'value': right }) self.render('/user/edit.html', rights=rights, cur_user=user)
def register_employee(): form_employee = subRegistrationForm() if form_employee.is_submitted(): hashed_pwd = bcrypt.generate_password_hash(form_employee.password.data) new_employee = CompanyUser(username=form_employee.username.data.upper(), password=hashed_pwd, company_id=session['id_user'], name=form_employee.name.data.upper(), surname=form_employee.surname.data.upper(), role=form_employee.role.data, department=form_employee.department.data) db.session.add(new_employee) db.session.commit() return redirect('login_company_employee') return render_template('subregistration_company.html', form_employee=form_employee)
def get(self): namespace = namespace_manager.get_namespace() namespace_manager.set_namespace('') users = CompanyUser.query(CompanyUser.namespace == namespace).fetch() for user in users: user.rights_str = '' for right in CompanyUser.ALL_RIGHTS_BITS: if user.has_rights((right,)): user.rights_str += MAP_RIGHTS[right] + ', ' public_hostname = "demo.rbcn.mobi" if CURRENT_APP_ID == DEMO_APP_ID else "auto.rbcn.mobi" login_url = "http://%s/company/login" % public_hostname self.render('/user/list.html', users=users, login_url=login_url)
def post(self): if self.user is not None: self.success() login, password, password2 = \ self.request.get("email").strip().lower(), \ self.request.get("password"), self.request.get("password2") namespace = latinize(login) error = None for metadata_instance in metadata.get_namespaces(): if namespace == metadata_instance: error = u"Введите другой email" if error: pass elif not login: error = u"Не введен email" elif not password: error = u"Не введен пароль" elif password != password2: error = u"Пароли не совпадают" else: values = { 'namespace': namespace, 'login': login, 'password_raw': password, 'rights': CompanyUser.RIGHTS_MASK_ADMIN, } success, user = CompanyUser.create_user(login, **values) if not success: error = u"Пользователь с этим email уже зарегистрирован" else: set_current_user(self.auth, user) if error: logging.info(error) self.render('/signup.html', email=login, error=error) else: namespace_manager.set_namespace(namespace) cfg = Config(id=1) cfg.REPORT_EMAILS = '*****@*****.**' cfg.put() DeliverySlot(name=u'Сейчас', slot_type=0, value=0).put() DeliverySlot(name=u'Через 5 минут', slot_type=0, value=5).put() DeliverySlot(name=u'Через 10 минут', slot_type=0, value=10).put() DeliverySlot(name=u'Через 15 минут', slot_type=0, value=15).put() DeliverySlot(name=u'Через 20 минут', slot_type=0, value=20).put() DeliverySlot(name=u'Через 25 минут', slot_type=0, value=25).put() DeliverySlot(name=u'Через 30 минут', slot_type=0, value=30).put() self.success()
def post(self): if CURRENT_APP_ID != DEMO_APP_ID: self.abort(403) login = self.request.get('login') password = self.request.get('password') try: user_dict = self.auth.get_user_by_password(login, password, save_session=False) user = CompanyUser.get_by_id(user_dict.get('user_id')) if not user: return self.render_error(u'Не найден пользователь') if not user.namespace: return self.render_error(u'Не найдено пространство имен') self.render_json({'success': True, 'namespace': user.namespace}) except (InvalidAuthIdError, InvalidPasswordError): return self.render_error(u'Неверные имя или пароль')
def post(self): if self.user is not None and self.user.get_role() == CompanyUser.ROLE: self.success() login = self.request.POST.get("login").lower().strip() password = self.request.POST.get("password") try: user_dict = self.auth.get_user_by_password(login, password) except (InvalidAuthIdError, InvalidPasswordError): self.render('/login.html', login=login, error=u"Неверный логин или пароль") else: user = CompanyUser.get_by_id(user_dict["user_id"]) if user.get_role() != CompanyUser.ROLE: self.render('/login.html', login=login, error=u"Неверный логин или пароль") else: self.success()
def post(self): data = json.loads(self.request.body) name, phone, email = map(data['info'].get, ('name', 'phone', 'email')) phone = '7' + ''.join(c for c in phone if '0' <= c <= '9') namespace = self._find_namespace(name) password = "******" % random.randint(0, 10000) CompanyUser.create_user(namespace, namespace=namespace, password_raw=password, login=namespace, rights=CompanyUser.RIGHTS_MASK_ADMIN) namespace_manager.set_namespace(namespace) cfg = Config(id=1) cfg.APP_NAME = name cfg.DELIVERY_PHONES = [phone] cfg.DELIVERY_EMAILS = ['*****@*****.**', email] cfg.SUPPORT_EMAILS = [email] cfg.ACTION_COLOR = "FF25B8CD" cfg.put() delivery_slot_keys = [ DeliverySlot(name=u'Сейчас', slot_type=0, value=0).put(), DeliverySlot(name=u'Через 5 минут', slot_type=0, value=5).put(), DeliverySlot(name=u'Через 10 минут', slot_type=0, value=10).put(), DeliverySlot(name=u'Через 15 минут', slot_type=0, value=15).put(), DeliverySlot(name=u'Через 20 минут', slot_type=0, value=20).put(), DeliverySlot(name=u'Через 25 минут', slot_type=0, value=25).put(), DeliverySlot(name=u'Через 30 минут', slot_type=0, value=30).put() ] menu = data['menu'] init = MenuCategory(category=None, title="Init") init.put() for i, category_dict in enumerate(menu): MenuCategory.generate_category_sequence_number( ) # only to increase counter category = MenuCategory(title=category_dict["title"], sequence_number=i, category=init.key) category.put() for j, item in enumerate(category_dict["items"]): MenuItem(category=category.key, title=item["title"], description=item["description"], picture=item["imageUrl"], price=int(round(float(item["price"]) * 100)), sequence_number=j).put() for _ in category.get_items(): category.generate_sequence_number() # only to increase counter venue_dict = data['venue'] venue = Venue(title=venue_dict['title'], description=venue_dict['address'], coordinates=ndb.GeoPt(venue_dict['lat'], venue_dict['lng']), active=True) venue.update_address() venue.schedule = Schedule(days=[ DaySchedule( weekday=i, start=datetime.time(0, 0), end=datetime.time(0, 0)) for i in xrange(1, 8) ]) for delivery_type in (SELF, IN_CAFE): delivery = DeliveryType.create(delivery_type) delivery.put() delivery.status = STATUS_AVAILABLE delivery.max_time = DAY_SECONDS + HOUR_SECONDS # need hour to order on tomorrow delivery.delivery_slots = delivery_slot_keys venue.delivery_types.append(delivery) venue.put() PaymentType(id=str(CASH_PAYMENT_TYPE), title="cash", status=STATUS_AVAILABLE).put() deferred.defer(_notify_sms, phone, namespace, password) deferred.defer(_notify_email, email, phone, name, namespace, password) self.render_json({'login': namespace, 'password': password})