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
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)
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())
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())
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
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
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)