Пример #1
0
 def retrieve(self, request, pk=None, *args, **kwargs):
     """Overridden GET For Particular Directory Informations about Shared & its Tags"""
     try:
         file_view_object = FileView()
         directory_request = pk
         directory_info = crud.get(self.table, "*",
                                   "where id = %s" % (directory_request))
         directory_info = directory_info and directory_info[0]
         shared_info = crud.get(
             ShareView.table, "*",
             "where directory_id = %s " % (directory_request))
         tag_info = crud.execute(
             "select tag_id from  file_manager_directory_tags where directory_id = %s "
             % (directory_request))
         tag_info = zip(*tag_info)[0] if tag_info and tag_info[0] else []
         file_info = crud.get(
             FileView.table, "*",
             "where directory_id = {0}".format(directory_request))
         file_data = file_view_object.get_file_data(request, file_info)
         sub_directories = crud.get(
             self.table, "*",
             "where parent_id=" + str(directory_info['id']))
         if directory_info:
             directory_info.update({
                 "shared_dirs": shared_info,
                 "tags": tag_info,
                 "file_ids": file_data,
                 "sub_directories": sub_directories
             })
         return Response(directory_info)
     except Exception as e:
         return Response(e)
Пример #2
0
 def pdf_editor(self, request, pk=None, *args, **kwargs):
     file_res = File.objects.get(id=pk)
     decrypt_file(
         os.path.join(settings.MEDIA_ROOT + str(
             crud.get(self.table, "*", 'where id=' +
                      pk)[0].get('owner_id')) + '/' +
                      base64.b16encode(file_res.modified_file_name)),
         os.path.join(settings.MEDIA_ROOT + file_res.modified_file_name),
         '123')
     os.chdir(settings.MEDIA_ROOT + str(
         crud.get(self.table, "*", 'where id=' + pk)[0].get('owner_id')))
     os.system('unoconv --format=pdf ' +
               os.path.join(settings.MEDIA_ROOT +
                            file_res.modified_file_name))
     file = open(
         settings.MEDIA_ROOT + file_res.modified_file_name.split('.')[0] +
         '.pdf', 'rb')
     response = HttpResponse(FileWrapper(file),
                             content_type='application/pdf')
     response['Content-Disposition'] = 'inline; filename="{}"'.format(
         file_res.modified_file_name)
     os.remove(
         os.path.join(settings.MEDIA_ROOT + file_res.modified_file_name))
     os.remove(settings.MEDIA_ROOT +
               file_res.modified_file_name.split('.')[0] + '.pdf')
     return response
Пример #3
0
    def activity_data(self,request,activity_id=None, *args,**kwargs):
        activity_type=request.data.get(config.type)
        print "ACTIVITY TYPE +++===",activity_type
        if activity_id and activity_type is not int :
            if activity_type==config.dir:
                data = Log.objects.get(directory_id=activity_id)
            elif activity_type==config.file:
                data = Log.objects.get(file_id=activity_id)     
            elif activity_type=="wf":
                data = Log.objects.get(workflow_id=activity_id)     
            elif activity_type==config.version:
                version_data=crud.execute("select activity_log_activity.id from activity_log_log inner join activity_log_activity on activity_log_log.id=activity_log_activity.log_id where  activity_log_activity.name like '%version%' and file_id="+activity_id)
                version_data = zip(*version_data)
                if version_data:
                    if len(version_data[0])>1:
                        response = crud.get(ActivityView.table,"*", "where id in {}".format(version_data[0]))
                    else:
                        response = crud.get(ActivityView.table,"*", "where id={}".format(version_data[0][0]))
                            
                    data=response[0]
                
                    return Response(response)
                else:
                     logger.debug(config.Data_before_update_not_awailable)
                     return Response({config.status:0})

            if data:    
                response_data = LogSerializer(data)
                return Response(response_data.data)
            else:
                data=[]
        else:
            data=[] 
            return Response(data)
Пример #4
0
    def totaldocuments(self, request, *args, **kwargs):
        """Total Documents for an Owner/User in Dashboard"""
        total_documents_userid = request.user.id
        my_total_documents = crud.get(
            "file_manager_file", ["count(id) as my_file"],
            "where owner_id = %s" % (total_documents_userid))
        my_total_documents = my_total_documents and my_total_documents[0]
        my_shared_documents = crud.execute(
            "SELECT share_id FROM file_manager_share_user_ids WHERE user_id = %s"
            % (total_documents_userid))
        my_shared_documents = zip(*my_shared_documents)

        try:
            my_shared_documents1 = crud.get(
                "file_manager_share", ["count(file_id)"],
                " WHERE file_id is not null and id in {}".format(
                    my_shared_documents[0])
            ) if len(my_shared_documents) > 1 else crud.get(
                "file_manager_share", ["count(file_id)"],
                " WHERE file_id is not null and id = {}".format(
                    my_shared_documents[0][0]))
        except Exception as err:
            return Response(err)
        my_shared_documents1 = my_shared_documents1 and my_shared_documents1[0]
        my_total_documents.update(my_shared_documents1)
        return Response(my_total_documents)
Пример #5
0
    def get_child_dirs(self, request, pk=None, *args, **kwargs):
        file_view_object = FileView()
        # child_object = crud.get(self.table,c.all,"where
        # parent_id={}".format(pk))
        # child_object = Directory.objects.filter(parent_id=pk,owner_id=request.user.id).order_by(c.name)
        files = crud.get(
            'file_manager_file', "*",
            "where directory_id ={0} and owner_id = {1}".format(
                int(pk), request.user.id))
        child_object = crud.get(
            self.table, "*",
            "where parent_id={0} and owner_id={1} order by name".format(
                int(pk), request.user.id))
        child_dirs = map(
            lambda i: i.update({
                'file_ids':
                file_view_object.get_file_data(request, files),
                'shared_dirs':
                self.get_directory_data(request, int(pk)),
                'sub_directories': [
                    item for sublist in crud.execute(
                        "select id from file_manager_directory where parent_id = {0}"
                        .format(i['id'])) for item in sublist
                ]
            }), child_object)
        logger.debug("Dictionary:: get_child_dirs: Child Object {} ".format(
            child_object))
        # child_dirs = DirectorySerializer(child_object, many=True)
        # logger.debug(
        #     "Dictionary:: get_child_dirs: Child DIrs{}".format(child_dirs))

        return Response(child_object)
Пример #6
0
 def retrieve(self, request, pk=None):
     # workflow_obj = crud.get(self.table,crud.fetch_query(config.workflow,config.  ).format(pk))
     workflow_obj = crud.get(self.table, "*", "WHERE id={}".format(pk))
     logger.debug(
         "\n\nNTWF WF:Retrieve - Workflow Object {} ".format(workflow_obj))
     workflow_obj = workflow_obj and workflow_obj[0]
     transition_obj = crud.get(
         TransitionViewSet.table, "*", "WHERE workflow_id={}".format(pk))
     logger.debug(
         "\n\nNTWF WF:Retrieve - Transition Object {} ".format(transition_obj))
     workflow_obj.update({"workflow_transition": transition_obj})
     return Response(workflow_obj)
Пример #7
0
def main():
	while True:
		print(":=="*20)
		print("\t\tCONSOLE CRUD WITH SQLITE3")
		print(":=="*20)
		print("[C]REATE NEW DATABASE")
		print("[D]ROP DATABASE")
		print("[U]SE DATABASE")
		print("[E]xit")
		print(":=="*20)

		try:
			opt = input('Select one option:\n')

			if opt.upper() == 'C':
				crud.clear()
				db.createDB()
			elif opt.upper() == 'D':
				db.dropDB()

			elif opt.upper() == 'U':
				while True:
					print("[1] Insert new record")
					print("[2] Show all records")
					print("[3] Update a record")
					print("[4] Delete a record")
					print("[5] Search a record")
					print("[6] Exit")
					print(":=="*20)
					try:
						option = int(input('Select a option:\n'))

						if option == 1:
							crud.clear()
							crud.create()
						if option == 2:
							crud.clear()
							crud.get()
						if option == 3:
							crud.update()
						elif option  == 4:
							crud.delete()
						elif option == 6:
							crud.clear()
							break
					except:
						print('Option invalid!')	

			elif opt.upper() == 'E':
				break
		except:
			print('Option invalid!')
Пример #8
0
 def save_editor(self, request, pk=None, *args, **kwargs):
     file_res = File.objects.get(id=pk)
     decrypt_file(
         os.path.join(settings.MEDIA_ROOT + str(
             crud.get(self.table, "*", 'where id=' +
                      pk)[0].get('owner_id')) + '/' +
                      base64.b16encode(file_res.modified_file_name)),
         os.path.join(settings.MEDIA_ROOT + file_res.modified_file_name),
         '123')
     self.org_data = convert(settings.MEDIA_ROOT +
                             FileSerializer(File.objects.get(
                                 id=pk)).data.get('modified_file_name'))
     os.remove(
         os.path.join(settings.MEDIA_ROOT + file_res.modified_file_name))
     if self.org_data != request.data:
         # Activity log
         request_data = {}
         param = {'field': 'file_id', 'file_id': pk, 'label': 'version'}
         track_fields = {
             c.can_read: c.read,
             c.can_write: c.write,
             c.can_delete: c.delete
         }
         request_data.update({'user_id': request.user.id})
         log_view = LogView()
         log_view.generate_log(request_data, param, "", track_fields)
         f = open(
             settings.MEDIA_ROOT + str(
                 crud.get(self.table, "*",
                          'where id=' + pk)[0].get('owner_id')) + '/' +
             file_res.modified_file_name.split('.')[0] + '.html', 'w')
         f.write(request.data['data'].encode())
         f.close()
         os.chdir(settings.MEDIA_ROOT + str(
             crud.get(self.table, "*", 'where id=' +
                      pk)[0].get('owner_id')))
         os.system('unoconv --format=' + file_res.name.split('.')[-1] +
                   ' ' + settings.MEDIA_ROOT + str(
                       crud.get(self.table, "*", 'where id=' +
                                pk)[0].get('owner_id')) + '/' +
                   file_res.modified_file_name.split('.')[0] + '.html')
         time.sleep(3)
         os.remove(settings.MEDIA_ROOT + str(
             crud.get(self.table, "*", 'where id=' +
                      pk)[0].get('owner_id')) + '/' +
                   file_res.modified_file_name.split('.')[0] + '.html')
         encrypt_file(
             os.getcwd() + '/' + file_res.modified_file_name,
             os.getcwd() + '/' +
             base64.b16encode(file_res.modified_file_name), '123')
         os.remove(os.getcwd() + '/' + file_res.modified_file_name)
     return Response({"hai": 'hai'})
Пример #9
0
    def tag_change(self, pk, requst_data, key):

        tags = crud.execute(
            "select name, file_manager_tag.id from file_manager_tag inner join file_manager_"
            + key + "_tags on file_manager_tag.id=file_manager_" + str(key) +
            "_tags.tag_id where " + key + "_id={}".format(pk))
        old_tag = []
        new_tag = []
        new_tag_ids = {}
        old_tag_ids = {}
        if tags:
            for tag in tags:
                old_tag_ids.update({str(tag[0]): tag[1]})
                old_tag.append(str(tag[0]))
        else:
            old_tag = []
        directory_update = requst_data
        new_tags = directory_update.get('tags')
        newTags = ""
        directory_update = requst_data
        new_tags = directory_update.get(c.tags)
        newTags = ""
        if new_tags:
            new_tags = tuple(new_tags)
            if len(new_tags) > 1:
                newTags = crud.get("file_manager_tag", ['id,name'],
                                   'where id in ' + str(new_tags))
            elif len(new_tags) == 1:
                newTags = crud.get("file_manager_tag", ['id,name'],
                                   'where id = ' + str(new_tags[0]))
        if newTags:
            for nt in newTags:
                new_tag_ids.update({str(nt.get(c.name)): nt.get('id')})
                new_tag.append(str(nt.get(c.name)))
        # else:

        def lr_diff(l, r):
            return list(set(l).difference(r))

        deleted_tag = lr_diff(old_tag, new_tag)
        added_tag = set(new_tag).difference(old_tag)
        tag_details = {}
        tag_details['added_tag'] = added_tag
        tag_details['deleted_tag'] = deleted_tag
        tag_details['new_tag_ids'] = new_tag_ids
        tag_details['old_tag_ids'] = old_tag_ids
        tag_details['new_tag'] = new_tag
        return tag_details
Пример #10
0
 def get_name(self,table_name,parameters,id):
     name=crud.get(table_name,parameters,config.where_id.format(id))
     if table_name==config.auth_user:
         name=str(name[0].get(parameters[0])+" "+name[0].get(parameters[1])).title()
     if table_name==config.auth_group:
         name=str(name[0].get(parameters[0])).title()
     return name
Пример #11
0
 def retrieve(self, request, pk=None, *args, **kwargs):
     """Overridden GET For Particular File Informations about Shared & its Tags"""
     try:
         file_request = int(pk)
         file_info = crud.get(
             self.table, "*",
             "where id = %s order by created_date desc" % (file_request))
         file_info = file_info and file_info[0]
         shared_info = crud.get(ShareView.table, "*",
                                "where file_id = %s " % (file_request))
         tag_info = crud.execute(
             "select tag_id from  file_manager_file_tags where file_id = %s "
             % (file_request))
         tag_info = zip(*tag_info)[0] if tag_info and tag_info[0] else []
         shared_files = self.get_file_data(request, [file_info])
         return Response(file_info)
     except Exception as e:
         return Response(e)
Пример #12
0
 def list(self, request, *args, **kwargs):
     """Overridden GET For Directory Informations Created by a Particular Owner """
     try:
         l = {}
         response = request.user.id
         directory_info = crud.get(self.table, "*",
                                   "where owner_id = " + str(response))
         sub_directories = map(
             lambda i: i.update({
                 'sub_directories':
                 crud.get(self.table, "*", "where parent_id=" + str(i['id'])
                          ),
                 'file_ids':
                 crud.get(FileView.table, "*", "where directory_id=" + str(
                     i['id']))
             }), directory_info)
         return Response(directory_info)
     except Exception as e:
         return Response(e)
Пример #13
0
 def get_parent_dirs(self, request, *args, **kwargs):
     try:
         response = crud.get(
             self.table, c.all,
             "where owner_id={} and parent_id is null order by name".format(
                 request.user.id))
         sub_directories = map(
             lambda i: i.update({
                 'sub_directories':
                 crud.get(self.table, "*", "where parent_id=" + str(i['id'])
                          ),
                 'file_ids':
                 crud.get(FileView.table, "*", "where directory_id=" + str(
                     i['id']))
             }), response)
         logger.debug(
             "Files:: get_parent_dirs: Parent Files{}".format(response))
         return Response(response)
     except Exception as e:
         return Response({"error": e})
Пример #14
0
 def get_mytasks(self, request, *args, **kwargs):
     "Custom Service for My Tasks in Dashboard for an Owner/User"
     my_tasks_userid = request.user.id
     my_taks_fileinfo = crud.execute(
         """select id from file_manager_file  where workflow_id in(select id from ntwf_workflow where is_template='false' and id in
                        (select workflow_id from ntwf_transition where auth_user_id = %s ) and active_state_id in (select state_from_id from ntwf_transition) )"""
         % (my_tasks_userid))
     my_tasks_fileinfo1 = map(
         lambda i: crud.get(self.table, "*", "where id = %s" % (i))[0],
         my_taks_fileinfo)
     return Response(my_tasks_fileinfo1)
Пример #15
0
 def get_mypendingtasks(self, request, *args, **kwargs):
     """My Pending Requests in Dashboard"""
     my_pending_tasks_userid = request.user.id
     my_pendingtasks_fileinfo = crud.execute(
         crud.fetch_query(
             c.file_manager,
             c.my_pendingtasks_fileinfo).format(my_pending_tasks_userid))
     my_pendingtasks_fileinfo1 = map(
         lambda i: crud.get(self.table, "*", "where id = %s" % (i[0]))[0],
         my_pendingtasks_fileinfo)
     return Response(my_pendingtasks_fileinfo1)
Пример #16
0
 def get_parent_files(self, request, *args, **kwargs):
     try:
         files = crud.get(
             self.table, "*",
             "where directory_id is null and owner_id = {0} order by created_date desc"
             .format(request.user.id))
         shared_files = self.get_file_data(request, files)
         logger.debug("Files:: get_parent_files: Parent Files{}".format(
             shared_files))
         return Response(shared_files)
     except Exception as e:
         return Response({"error": e})
Пример #17
0
 def list(self, request, *args, **kwargs):
     """Overridden GET For File Informations Created by a Particular Owner """
     try:
         response = request.user.id
         file_info = crud.get(
             self.table, "*", "where owner_id = " + str(response) +
             " order by created_date desc")
         shared_files = self.get_file_data(request, file_info)
         shared_info = map(
             lambda i: i.update({
                 'tags': [
                     item for sublist in crud.execute(
                         "select tag_id from  file_manager_file_tags where file_id = %s "
                         % (i['id'])) for item in sublist
                 ],
                 'shared_ids':
                 crud.get(ShareView.table, "*", "where file_id = %s " %
                          (i['id']))
             }), file_info)
         return Response(file_info)
     except Exception as e:
         return Response(e)
Пример #18
0
 def get_directory_data(self, request, parent_id='null'):
     l = {}
     directories = crud.get(
         self.table, "*", "where parent_id = {0} and owner_id = {1}".format(
             parent_id, request.user.id))
     crud.execute(
         "create or replace view directory_share as select ds.id,ds.directory_id,dsu.user_id,dsg.group_id,ds.can_read,ds.can_write,ds.can_delete from file_manager_share as ds left join file_manager_share_group_ids as dsg on ds.id = dsg.share_id left join file_manager_share_user_ids as dsu on ds.id = dsu.share_id where directory_id is not null"
     )
     directory_share_data = crud.get('directory_share', "*", '')
     map(
         lambda x: l.get(x.get('directory_id')).get('shared_ids').append(x)
         if x.get('directory_id') in l else l.update(
             {x.get('directory_id'): {
                  'shared_ids': [x]
              }}), directory_share_data)
     map(
         lambda (k, v): v.update({
             'user_ids':
             list(
                 set(map(lambda fd: fd.get('user_id'), v.get('shared_ids')))
             ),
             'group_ids':
             list(
                 set(map(lambda fd: fd.get('group_id'), v.get('shared_ids'))
                     ))
         }), l.iteritems())
     tags = map(
         lambda f: f.update({
             'tags': [
                 i[0] for i in crud.
                 execute("select tag_id from {0} where directory_id = {1}".
                         format("file_manager_directory_tags", f.get('id')))
             ]
         }) if f.get('id') else '', directories)
     shared_dirs = map(
         lambda f: f.update({'shared_dirs': [l.get(f.get('id'))]}),
         directories)
     return directories
Пример #19
0
 def download(self, request, pk=None, *args):
     file_res = File.objects.get(id=pk)
     decrypt_file(
         os.path.join(settings.MEDIA_ROOT + str(
             crud.get(self.table, "*", 'where id=' +
                      pk)[0].get('owner_id')) + '/' +
                      base64.b16encode(file_res.name)),
         os.path.join(settings.MEDIA_ROOT + file_res.name), '123')
     file = open(settings.MEDIA_ROOT + file_res.name, 'rb')
     response = HttpResponse(FileWrapper(file),
                             content_type=file_res.file_content_type)
     response['Content-Disposition'] = 'attachment; filename="{}"'.format(
         file_res.name)
     os.remove(os.path.join(settings.MEDIA_ROOT + file_res.name))
     return response
Пример #20
0
 def edit_file(self, request, pk=None):
     file_res = File.objects.get(id=pk)
     decrypt_file(
         os.path.join(settings.MEDIA_ROOT + str(
             crud.get(self.table, "*", 'where id=' +
                      pk)[0].get('owner_id')) + '/' +
                      base64.b16encode(file_res.modified_file_name)),
         os.path.join(settings.MEDIA_ROOT + file_res.modified_file_name),
         '123')
     os.chdir(settings.MEDIA_ROOT)
     os.system('unoconv --format=xhtml ' + settings.MEDIA_ROOT +
               FileSerializer(File.objects.get(
                   id=pk)).data.get('modified_file_name'))
     os.remove(
         os.path.join(settings.MEDIA_ROOT + file_res.modified_file_name))
     return Response({'contents': data_edit})
Пример #21
0
def tranform_validation(request):
    auth_url= "http://"+request.META.get(config.HTTP_HOST)+config.api_token_auth
    data=json.loads(request.body.decode(config.utf8))
    username=data.get(config.username)
    password=data.get(config.password)
    print "data========>",data
    print "User name========>",username
    try:
        request_url =requests.get(config.transform_url+str(username)+'&'+config.password+'='+str(password))
        
        result = json.loads(request_url.text)
        print "Result  ====-=-=-=-=-=",result
        message=result.get(config.msg)
        data=result.get(config.info)
    except:
        data={config.username:username, config.password:password}
        headers = {config.content_type:config.application_json}
        token=requests.post(auth_url,data=json.dumps(data),headers=headers)
        return Response(token.content,status=st.HTTP_400_BAD_REQUEST)
        
    if message !=config.success:
        data={config.username:username, config.password:password}
        headers = {config.content_type:config.application_json}
        token=requests.post(auth_url,data=json.dumps(data),headers=headers)
        return Response(token.content,status=st.HTTP_400_BAD_REQUEST)

    elif message ==config.success:
        print "@@@@@TRan!for result",message
        #To check auth user table for user is exist or not
        user_check=crud.get(config.auth_user,[config.email],config.where_email.format(str(data.get(config.email))))
        if not user_check:
            user = User.objects.create_user(username=username,
                                 email=data.get(config.email),is_staff=True,is_superuser=True,
                                 password=password)
            data={ config.username:username,config.password:password}
            headers = {config.content_type: config.application_json}
            token=requests.post(auth_url,data=json.dumps(data),headers=headers)
            token=json.loads(token.text)
            return Response(token)
        else:
            data={config.username:username,config.password:password}
            headers = {config.content_type:config.application_json}
            token=requests.post(auth_url,data=json.dumps(data),headers=headers)
            token=json.loads(token.text)
            return Response(token)
Пример #22
0
def get_near(lat:float,lon:float,rad:float,db: Session = Depends(get_db)):
    R = 6373.0
    li = []
    row = crud.get(db)
    lat1 = radians(lat)
    lon1 = radians(lon)
    given_radii = rad
    for i in row:
        if i.lat is None or i.lon is None:
            continue
        lat2 = radians(float(i.lat))
        lon2 = radians(float(i.lon))
        dlon = lon2 - lon1
        dlat = lat2 - lat1
        a = sin(dlat / 2.0)**2.0 + cos(lat1) * cos(lat2) * sin(dlon / 2.0)**2.0
        c = 2.0 * atan2(sqrt(a), sqrt(1.0 - a))
        distance = R * c
        if distance <= given_radii:
            #print(distance)
            li.append(i)
    return li
Пример #23
0
 def get_file_data(self, request, files):
     l = {}
     crud.execute(
         "create or replace view file_share as select fs.id,fs.file_id,fsu.user_id,fsg.group_id,fs.can_read,fs.can_write,fs.can_delete from file_manager_share as fs left join file_manager_share_group_ids as fsg on fs.id = fsg.share_id left join file_manager_share_user_ids as fsu on fs.id = fsu.share_id where file_id is not null"
     )
     file_share_data = crud.get('file_share', "*", '')
     map(
         lambda x: l.get(x.get('file_id')).get('shared_ids').append(x)
         if x.get('file_id') in l else l.update(
             {x.get('file_id'): {
                  'shared_ids': [x]
              }}), file_share_data)
     map(
         lambda (k, v): v.update({
             'user_ids':
             list(
                 set(map(lambda fd: fd.get('user_id'), v.get('shared_ids')))
             ),
             'group_ids':
             list(
                 set(map(lambda fd: fd.get('group_id'), v.get('shared_ids'))
                     ))
         }), l.iteritems())
     tags = map(
         lambda f: f.update({
             'tags': [
                 i[0] for i in crud.execute(
                     "select tag_id from {0} where file_id = {1}".format(
                         "file_manager_file_tags", f.get('id')))
             ]
         }) if f.get('id') else '', files)
     workflow_info = map(
         lambda i: i.update(
             {'workflow_id': obj.get_workflow_status(i['workflow_id'])})
         if i.get('workflow_id') else '', files)
     shared_files = map(
         lambda f: f.update({'shared_files': l.get(f.get('id'))}), files)
     return files
Пример #24
0
def get():
    jsonData = crud.get()
    response = jsonify(cars=jsonData)
    response.headers.add("Access-Control-Allow-Origin", "*")
    return response
Пример #25
0
#!/usr/bin/env python

import crud
from pprint import pprint

print '-'*80
print 'BEGIN Testing storage.MySQL.crud...'


crud = crud.Crud('store_test')

crud.query('SELECT * FROM session_data')
crud.insert('session_data', [('key1', 'val1', 'str', 'sess1', 1234567890), ('key1', 'val1', 'str', 'sess1', 1234567890), ('key1', 'val1', 'str', 'sess1', 1234567890)])
crud.insert('session_data2', [('key1', 'val1', 'str', 'sess1', 1234567890), ('key1', 'val1', 'str', 'sess1', 1234567890), ('key1', 'val1', 'str', 'sess1', 1234567890)])
pprint(crud.get('session_data', {'session_id2=': "'sess1'", '`key`=': "'key2'"}))
pprint(crud.get('session_data', {'session_id=': "'sess1'", '`key`=': "'key2'"}))
crud.delete('session_data2')
crud.delete('session_data')

crud.insert('session_data', data=[('key2', 'val1', 'str', 'sess1', 1234567890)])


crud.drop_tables()
crud.create_tables()
crud.insert('session_data', data=[('key2', 'val1', 'str', 'sess1', 1234567890)])
crud.update('session_data2', data={'value': 'val3'}, conditions=[{'session_id=': "'sess1'"}, {'utime=':str(1234567890)}])
crud.update('session_data', data={'value': 'val3'}, conditions=[{'session_id=': "'sess1'"}, {'utime=':str(1234567890)}])



print 'END Testing storage.MySQL.crud...'
Пример #26
0
def get_entity(resource, entity_id):

    resource_class = get_resource_class(resource)
    return crud.get(resource_class, entity_id)
Пример #27
0
    def generate_log(self, request, param=None, original_data=None, fields=None, ChangeTag=None):
        activity = ActivityView()
        #print "1=============================>param:",param,"\nreques",request,'\n === fileds',fields
        if param is not None:
            if fields is None:
                    table = Log._meta.db_table
                    name=config.Created
                    log_data = {
                        config.created_by_id: request.get(config.user_id), config.created_date: datetime.now(),
                        config.modified_date: datetime.now(),config.modified_by_id:request.get(config.user_id)}
                    log_data.update({param.get(config.field):request.get(config.id)})
                    id = crud.add(table,log_data) 
                    logger.debug(config.Generating_log.format(id))
                    if id:
                        if isinstance(id,int):
                            message=str(param.get(config.label))+" "+str(events.get(config.Created))
                            logger.debug(config.Create_message.format(message))
                            activity.generate_activity(request,events.get(config.Created),message,id)
                    else:
                        logger.error(config.Log_id_not_found,id)
            else:
#                print " 2 ====================================================param==>",param,'\n==> reques=>',request,'\n change tag',ChangeTag,'\n====,fileds',fields
                updated_value=[]
                message_data=[] 
                table = Log._meta.db_table
                if original_data and fields:
                    #change_value=jd.diff(original_data[0],request)
                    change_value=jd.diff((original_data),dict(request),syntax=config.symmetric)
                    updated_value = {key: value for key, value in change_value.items() if fields.get(key)}
                    if updated_value:
                        #updated_value = filter(lambda key:key  in fields,change_value)
                        mes={message_data.append(str(param.get(config.label))+' '+str(fields.get(k).get(config.label))+config.has_been_changed_from+str(updated_value.get(k)[0])+" to "+str(updated_value.get(k)[1])) for k in updated_value.keys()}
                        id=original_data.get(config.id)
                    else:
                        logger.debug(config.actvity_update.format(config.Track_fields_not_match))    
                        id=None        
                    if ChangeTag:
                        if config.Added in ChangeTag.keys():
                            name=config.Updated
                            msg=message_data.append(str(ChangeTag.get(config.Added).get(config.field)+" "+str( [j for i, j in enumerate(ChangeTag.get(config.Added).get(config.tag))])+" - "+ ChangeTag.get(config.Added).get(config.action)+" for "+str(param.get(config.label))+" "+request.get(config.name) ))    
                            id=original_data.get(config.id)
                        if config.Removed in ChangeTag.keys():
                            msg=message_data.append(str(ChangeTag.get(config.Removed).get(config.field)+" "+str( [j for i, j in enumerate(ChangeTag.get(config.Removed).get(config.tag))])+" - "+ ChangeTag.get(config.Removed).get(config.action)+" From "+str(param.get(config.label))+" "+request.get(config.name) ))
                            id=original_data.get(config.id)
                            name=config.Updated
                elif param.get(config.label)==config.Workflow:
                    id=param.get(config.workflow_id)
                    name=config.Updated
                    mes={message_data.append(str(param.get(config.label))+" "+config.has_been_changed_from+str(fields[0])+" to "+str(fields[1]))}
                    message={}
                    message.update({config.message:message_data})   
                
                elif param.get(config.action)==config.share:
                    id=request.get(param.get(config.field))
                    name=config.Updated
                    uname=[]
                    def get_name(self,table_name,parameters,id):
                        name=crud.get(table_name,parameters,config.where_id.format(id))
                        if table_name==config.auth_user:
                            name=str(name[0].get(parameters[0])+" "+name[0].get(parameters[1])).title()
                        if table_name==config.auth_group:
                            name=str(name[0].get(parameters[0])).title()
                        return name
                    permission=map(lambda k:fields.get(k) if request.get(k)!=False else None,[i for i  in fields.keys()])
                    if request.get(config.user_ids):
                        uname=map(lambda id:get_name(self,config.auth_user,[config.first_name,config.last_name],id),request.get(config.user_ids))
                        mes={message_data.append(str(param.get(config.label))+" "+config.share_user_msg+" "+str(uname)+" "+config.with_key+" "+str([p for p in permission if p !=   None ])+" "+config.permissions)}
                    if request.get(config.group_ids):
                        groups=map(lambda gid:get_name(self,config.auth_group,[config.name],gid),request.get(config.group_ids))
                        mes={message_data.append(str(param.get(config.label))+" "+config.share_group_msg+" "+str(groups)+" "+config.with_key+" "+str([p for p in permission if p !=   None ])+" "+config.permissions )}
                    message={}
                    message.update({config.message:message_data})  
                elif param.get(config.label)==config.version:
                   
                    id=param.get(config.file_id)
                    name=config.version
                    #verion_count=crud.execute(crud.fetch_query("activity_log","version_count").format(param.get(config.file_id)))
                    verion_count=crud.execute("select count(activity_log_log.id)from activity_log_log inner join activity_log_activity on activity_log_log.id=activity_log_activity.log_id where  activity_log_activity.name like '%version%' and file_id="+id)
                    verion_count=verion_count[0][0]
                    mes={message_data.append(str(param.get(config.label))+" "+str(verion_count+1))}
                    message={}
                    message.update({config.message:message_data}) 
                if id:
                    log=crud.get(self.table,config.all,config.where +param.get(config.field)+'='+str(id))
                    log_id=log[0].get(config.id)
                    if isinstance(log_id,int): 
                        for msg in message_data:
                            activity.generate_activity(request,events.get(name),msg,log_id)                       
                    else:
                        logger.debug(config.Log_id_not_found,log_id)        
                else:
                    logger.debug(config.Data_before_update_not_awailable)
        else:   
            Response(config.Parametter_missing)       
Пример #28
0
    def create(self, request):
        """
        <b>Author: </b> Manickam \n
        Service to create a new Directory. Send payload based on Example value.
        \n
        """
        try:
            uam_func_sync(request, c.strUAMLink, c.strAppName, c.strAppClient,
                          "File Manager ", "Create",
                          request.session.session_key,
                          request.META.get('HTTP_X_FORWARDED_FOR'))
        except Exception as e:
            logger.info(e)
        user_name = request.user.first_name + request.user.last_name
        user_id = request.user.id
        # directory_data = request.data
        # tags = directory_data.pop(c.tags)
        # response = crud.add(self.table, directory_data)

        # return Response(response)
        serializer = DirectorySerializer(data=request.data)
        if serializer.is_valid():
            directory_data = request.data
            tag = [
                istags for istags in directory_data.keys() if istags == c.tags
            ]
            if istags:
                tags = directory_data.pop("tags")
            directory_data.update({
                'created_date':
                datetime.now(),
                'modified_date':
                datetime.now(),
                'created_by_id':
                directory_data.get('owner_id'),
                'modified_by_id':
                directory_data.get('owner_id')
            })
            #tags = directory_data.pop(c.tags)
            # directory_data.update({c.created_date:datetime.now(),c.modified_date:datetime.now(),c.created_by_id:directory_data.get(c.owner_id),c.modified_by_id:directory_data.get(c.owner_id)})
            directory_id = crud.add(self.table, directory_data)
            if tags:
                for tag in tags:
                    directory_tag_data = {
                        c.directory_id: directory_id,
                        c.tag_id: tag
                    }
                    crud.add(c.tag_dir_rel, directory_tag_data)
            param = {
                'field': 'directory_id',
                'label': 'Directory',
                'user_name': user_name
            }
            # self.add_log(act_log_data=serializer.data)
            act_log_data = request.data
            act_log_data.update({'id': directory_id, 'user_id': user_id})
            log_view = LogView()
            log_view.generate_log(act_log_data, param)
            # return Response(directory_id)
            # act_log_data=request.data
            # act_log_data.update({'id':directory_id})
            # log_view = LogView()
            # log_view.generate_log(act_log_data,param)e

            response = crud.get(self.table, c.all,
                                c.where_id_param.format(directory_id))
            return Response(response[0])
        else:
            return Response(serializer.errors)
Пример #29
0
    def update(self, request, pk=None):

        try:
            uam_func_sync(request, c.strUAMLink, c.strAppName, c.strAppClient,
                          "File Manager ", "Update",
                          request.session.session_key,
                          request.META.get('HTTP_X_FORWARDED_FOR'))
        except Exception as e:
            logger.info(e)
        user_name = request.user.first_name + request.user.last_name
        try:
            # request = dict(request.data)
            param = {
                'field': 'directory_id',
                'label': 'Directory',
                'user_name': user_name
            }
            # print "\n\n\n@@@@@@data @@",request.data
            # payload = request.data
            # #payload=serializer.data
            # print "original data:%%%%%%%%,",payload
            original_data = crud.get(self.table, c.all,
                                     'where id=' + str(pk))[0]
            # tags = crud.execute("select tag_id from file_manager_directory_tags where directory_id={}".format(pk))
            # shared_ids = crud.execute("select id from file_manager_share where directory_id={}".format(pk))
            # original_data.update({c.tags:list(tags and zip(*tags)[0]),    'shared_ids':list(shared_ids and zip(*shared_ids)[0])})
            # logger.debug("Files:: get_parent_dirs: Parent Files{}".format(original_data))

            # #try:
            # payload.update({"id":pk})
            # tags = payload.pop(c.tags)
            # file_ids=payload.pop("file_ids")
            # parent_id=payload.pop("parent_id")
            # shared_ids = payload.pop("shared_ids")
            # sub_directories=payload.pop("sub_directories")
            # workflow_id=payload.pop(c.workflow_id)
            # response = crud.update(self.table,payload )
            # print "Response",response
            param = {
                'field': 'directory_id',
                'label': 'Directory',
                'user_name': user_name
            }
            original_data = crud.get(self.table, c.all,
                                     'where id=' + str(pk))[0]
            dir_obj = Directory.objects.get(id=pk)
            serializer = DirectorySerializer(dir_obj, data=request.data)
            if serializer.is_valid():

                tag_details = self.tag_change(pk, request.data, "directory")
                new_tag_ids = {}
                old_tag_ids = {}
                added_tag = tag_details.get("added_tag")
                deleted_tag = tag_details.get("deleted_tag")
                new_tag_ids.update(tag_details.get("new_tag_ids"))
                old_tag_ids.update(tag_details.get("old_tag_ids"))
                directory_update = request.data
                for i in directory_update.keys():
                    if i in [
                            c.tags, 'parent_id', 'workflow_id', 'shared_dirs',
                            'file_ids', 'sub_directories'
                    ]:
                        if i == c.tags:
                            update_tag = directory_update.pop(i)
                        else:
                            directory_update.pop(i)
                directory_id = crud.update(self.table, directory_update)
                if added_tag:
                    for tag in added_tag:
                        directory_tag_data = {
                            c.directory_id: directory_id,
                            "tag_id": new_tag_ids.get(tag)
                        }
                        crud.add(c.tag_dir_rel, directory_tag_data)
                if deleted_tag:
                    for tag in deleted_tag:
                        try:
                            crud.execute(
                                "delete from  file_manager_directory_tags where tag_id={} and directory_id={}"
                                .format(old_tag_ids.get(tag), pk), True)
                        except Exception as err:
                            return Response(err)
                logger.debug("Files:: Serializer{}".format(request.data))
                log_view = LogView()
                original_data1 = {}
                map(
                    lambda x: original_data1.update(
                        {str(x): original_data.get(x)}), original_data)
                # original_data1.update({c.tags:old_tag})
                current_data = request.data
                current_data.update({'user_id': request.user.id})
                ChangeTag = {}
                if added_tag:
                    ChangeTag.update({
                        "Added": {
                            c.field: "Tag",
                            "tag": [Tag for Tag in added_tag],
                            "action": "Added"
                        }
                    })
                if deleted_tag:
                    ChangeTag.update({
                        "Removed": {
                            c.field: "Tag",
                            "tag": [Tag for Tag in deleted_tag],
                            "action": "Removed"
                        }
                    })
                log_view.generate_log(
                    current_data,
                    param,
                    original_data1,
                    self.track_fields,
                    ChangeTag,
                )
                return Response(
                    crud.get(self.table, c.all,
                             c.where_id_param.format(directory_id)))
            else:
                logger.debug("Files:: Serializer{}".format(serializer.errors))
                return Response(serializer.errors)
        except Exception as err:
            return Response(err)
Пример #30
0
 def update(self, request, pk=None):
     user_name = request.user.first_name + request.user.last_name
     track_fields = {
         c.name: {
             c.field: c.name,
             c.label: "Name"
         },
         c.tags: {
             c.field: c.tags,
             c.label: "Tags"
         }
     }
     param = {'field': 'file_id', 'label': 'File', 'user_name': user_name}
     original_data = crud.get(self.table, c.all, 'where id=' + pk)[0]
     logger.debug(
         "Files:: get_parent_dirs: Parent Files{}".format(original_data))
     dir_obj = File.objects.get(id=pk)
     serializer = FileSerializer(dir_obj, data=request.data)
     if serializer.is_valid():
         dir_view = DirectoryView()
         tag_details = dir_view.tag_change(pk, request.data, "file")
         new_tag_ids = {}
         old_tag_ids = {}
         added_tag = tag_details.get("added_tag")
         new_tag = tag_details.get("new_tag")
         deleted_tag = tag_details.get("deleted_tag")
         new_tag_ids.update(tag_details.get("new_tag_ids"))
         old_tag_ids.update(tag_details.get("old_tag_ids"))
         file_update = request.data
         update_tag = file_update.pop(c.tags)
         serializer.save()
         file_id = pk
         # if added_tag:
         #     for tag in added_tag:
         #         file_tag_data = {"file_id": file_id,
         #                          "tag_id": new_tag_ids.get(tag)}
         #         crud.add('file_manager_file_tags', file_tag_data)
         if deleted_tag:
             for tag in deleted_tag:
                 try:
                     crud.execute(
                         "delete from  file_manager_file_tags where tag_id={} and file_id={}"
                         .format(old_tag_ids.get(tag), pk), True)
                 except Exception as err:
                     return Response(err)
         log_view = LogView()
         original_data1 = {}
         map(
             lambda x: original_data1.update({str(x): original_data.get(x)}
                                             ), original_data)
         ChangeTag = {}
         if added_tag:
             ChangeTag.update({
                 "Added": {
                     c.field: "Tag",
                     "tag": [Tag for Tag in added_tag],
                     "action": "Added"
                 }
             })
         if deleted_tag:
             ChangeTag.update({
                 "Removed": {
                     c.field: "Tag",
                     "tag": [Tag for Tag in deleted_tag],
                     "action": "Removed"
                 }
             })
         request_data = request.data
         request_data.update({'user_id': request.user.id})
         log_view.generate_log(request.data, param, original_data1,
                               track_fields, ChangeTag)
         # settings.connection_es.update(index='dms_test',doc_type='post',body={'doc':{'name':file.name,'type':'File','content_type':file.content_type,'owner_id':request.user.id,'tags':''}})
         return Response(serializer.data)
     else:
         return Response(serializer.errors)
Пример #31
0
 def get_templates(self, request, *args, **kwargs):
     template_res = crud.get(self.table, "*", "WHERE is_template IS true")
     return Response(template_res)