Exemple #1
0
    def add_role(self, role_name, function_ids):
        """
        添加角色
        @role_name str, 角色名
        """
        # 角色名是否存在
        if self.exists_role(role_name):
            return 1

        auth_code = ''
        # 生成授权签名
        function_ids = filter(lambda x: x > 0, [int(function_id) for function_id in function_ids])
        if function_ids:
            # 生成授权码
            auth_code = utils.md5( ','.join([str(fid) for fid in sorted(function_ids)]) )

        mdb = self._makedb(True)
        with mdb.transaction():
            aid = mdb.insert(self.role_table, name=role_name, auth_code=auth_code)
            if aid > 0:
                if function_ids:
                    # 更新授权
                    values = []
                    for fid in function_ids:
                        values.append({
                            'role_id': aid,
                            'function_id': fid,
                        })
                    mdb.multiple_insert(self._maketable('role_function'), values = values)
                return 0
        return 2
Exemple #2
0
def gen_file_name(instance, filename):
    ext_filename = filename.split('.')[1]
    if ext_filename == u'jpeg':
        ext_filename = 'jpg'
    sub_dir = instance.__class__.__name__.lower()
    filename = str(instance.pk) + '_' + md5(filename + str(datetime.now())) + \
        '.' + ext_filename
    return os_path_join(sub_dir, filename)
Exemple #3
0
def gen_file_name(instance, filename):
    ext_filename = filename.split('.')[1]
    filename = filename.encode('ascii', 'ignore')
    if ext_filename == 'jpeg':
        ext_filename = 'jpg'
    filename = str(int(time.time())) + '_' + md5(
        filename + str(datetime.datetime.now())) + '.' + ext_filename
    return os.path.join('logo', filename.lower())
Exemple #4
0
def gen_file_name(instance, filename):
    ext_filename = filename.split('.')[1]
    filename = filename.encode('ascii', 'ignore')
    if ext_filename == 'jpeg':
        ext_filename = 'jpg'
    filename = str(
        instance.pk) + '_' + md5(filename +
                                 str(datetime.now())) + '.' + ext_filename
    return os_path_join('userpic', filename.lower())
Exemple #5
0
    def authenticate(self, username=None, password=None):
        user = None
        try:
            check_user = User.objects.get(username=username)
        except User.DoesNotExist:
            return None

        try:
            if check_user.old_auth.password == md5(password):
                user = check_user
                user.set_password(password)
                user.save()
                user.old_auth.delete()
        except ObjectDoesNotExist:
            if check_user.check_password(password):
                user = check_user

        return user
Exemple #6
0
    def update_role(self, role_id, role_name, function_ids):
        """
        更新角色
        """
        up = []
        # 是否有相同用户名的用户
        # 如果有则比较其id是否相同,如果相同,不更新用户名
        u = self.find_role_by_name(role_name)
        if u:
            if u.id != role_id:
                return 1
        else:
            up.append('name = $role_name')

        auth_code = ''
        # 生成授权签名
        function_ids = filter(lambda x: x > 0, [int(function_id) for function_id in function_ids])
        if function_ids:
            # 生成授权码
            auth_code = utils.md5( ','.join([str(fid) for fid in sorted(function_ids)]) )

        up.append('auth_code = $auth_code')

        mdb = self._makedb(True)
        with mdb.transaction():
            mdb.query('''UPDATE %s SET %s WHERE id = $role_id;''' % (self.role_table, ','.join(up)), vars=locals())
            # 删除原来的授权
            mdb.delete(self._maketable('role_function'), where = 'role_id = $role_id', vars = locals())
            if function_ids:
                # 更新授权
                values = []
                for fid in function_ids:
                    values.append({
                        'role_id': role_id,
                        'function_id': fid,
                    })
                mdb.multiple_insert(self._maketable('role_function'), values = values)

            return 0

        return 2
Exemple #7
0
 def parse(self, response):
     for sel in response.xpath('//article[@id]'):
         item = CodingItem()
         item['amount'] = unicode(
             sel.xpath('div/div/div/div[@class="price"]/span/span/text()').extract()[
                 0]).strip().replace(",", "")
         item['title'] = '{0} | {1}'.format(unicode(
             sel.xpath('div/div/div/div[@class="name"]/a/text()').extract()[0]).strip(), item['amount'])
         item['role'] = unicode(
             sel.xpath('div/div/div/div[@class="coders"]/span/@title').extract()[0]).strip()
         item['type'] = unicode(
             sel.xpath('div/div/div/div[@class="type"]/div/span/text()').extract()[0]).strip()
         item['duration'] = unicode(
             sel.xpath('div/div/div/div[@class="type"]/label/span/b/text()').extract()[
                 0]).strip()
         url = unicode(
             sel.xpath('div/div/div/div[@class="name"]/a/@href').extract()[0]).strip()
         url = '{0}{1}'.format(self.host, url)
         item['url'] = url
         item['unique_id'] = md5(url)
         yield Request(url, meta={'item': item}, callback=self.parse_sub_page)