Ejemplo n.º 1
0
    def getUsersListLinks(self):
        self.response.out.write(
            htmlHelper.getHtmlFrame() +
            '''<script type="text/javascript" language="javascript">
                                               function go(funcName, userName, password){
                                                   document.forms[0].action='/' + funcName;
                                                   document.forms[0].userName.value = userName;
                                                   document.forms[0].password.value = password;
                                                   document.forms[0].submit();
                                               }

                                               function deleteUser(userName, password) {
                                                   if(confirm('Are you sure that you wish to permanently delete the user "' + userName + '"?')) {
                                                       go('DeleteUser', userName, password);
                                                   }
                                               }
                                       </script>
                                 ''')
        user = datamodule.GetUser(self.request.get('userName'),
                                  self.request.get('password'))
        if (not user):
            self.response.out.write(
                '<strong style="color:red;">User not found</strong> - Please check your User Name and Password.</body></html>'
            )
            return

        users = datamodule.Users.all().fetch(1000, 0)

        self.response.out.write('''<span class="header">List of Users</span>
                                     <form method="post" target="_self">
                                     <input name="userName" type="hidden" value="" />
                                     <input name="password" type="hidden" value="" />
                                     <table cellspacing="0" cellpadding="5"><tr class="headRow">
                                        <td></td>
                                        <td>User Name</td>
                                        <td>Password</td>
                                        <td>Is Admin?</td>
                                        <td></td></tr><tr>''')
        count = 0
        for user in users:
            count += 1
            self.response.out.write('''<tr style="background-color:%s;">
                                             <td>%s.</td>
                                             <td>%s</td>
                                             <td>%s</td>
                                             <td>%s</td>
                                             <td><a class="link" onclick="javascript:go('GetFileListLinks', '%s', '%s');return false;">View Files</a> |
                                                 <a class="link" onclick="javascript:deleteUser('%s', '%s');return false;">Delete User</a></td>
                                         </tr>''' % (
                '#ffffff' if count % 2 else '#f1f1f1',
                count,
                user.userName,
                user.password,
                str(user.isAdmin),
                user.userName,
                user.password,
                user.userName,
                user.password,
            ))
        self.response.out.write('</table></body></html>')
Ejemplo n.º 2
0
    def newUser(self):
        htmlHelper.SetContentTypeToXml(self)
        userName = self.request.get('userName').strip()
        password = self.request.get('password').strip()
        isAdminUser = self.request.get('isAdmin')

        if (len(userName) < 2):
            self.response.out.write(
                htmlHelper.XmlDeclaration +
                '<error errorId="1">Invalid username</error>')
            return
        if (len(password) < 4):
            self.response.out.write(
                htmlHelper.XmlDeclaration +
                '<error errorId="2">Invalid password</error>')
            return
        if (datamodule.GetUser(userName, password)):
            self.response.out.write(
                htmlHelper.XmlDeclaration +
                '<error errorId="3">Username and password already taken</error>'
            )
            return

        user = datamodule.Users(userName=userName,
                                password=password,
                                isAdmin=(True if isAdminUser else False))
        user.put()
        self.response.out.write(htmlHelper.XmlDeclaration +
                                '<OK>User Created</OK>')
Ejemplo n.º 3
0
    def addFile(self):
        htmlHelper.SetContentTypeToXml(self)
        currUser = datamodule.GetUser(self.request.get('userName'),
                                      self.request.get('password'))
        if (not currUser):
            self.response.out.write(
                htmlHelper.XmlDeclaration +
                '<error errorId="4">User not found</error>')
            return

        filename = self.request.get('fileName').strip()

        if len(filename) == 0:
            self.response.out.write(
                htmlHelper.XmlDeclaration +
                '<error errorId="5">File name required</error>')
            return

        existingFile = GqlQuery(
            'SELECT __key__ FROM Files WHERE user = :1 AND fileName = :2',
            currUser, filename).get()
        if existingFile:
            self.response.out.write(
                htmlHelper.XmlDeclaration +
                '<error errorId="6">File name not unique</error>')
            return

        file = datamodule.Files(user=currUser,
                                fileName=filename,
                                fileText=self.request.get('fileText'))
        file.put()
        self.response.out.write(htmlHelper.XmlDeclaration +
                                '<OK>File Added</OK>')
Ejemplo n.º 4
0
    def getFileListLinks(self):
        self.response.out.write(
            htmlHelper.getHtmlFrame() +
            '''<script type="text/javascript" language="javascript">
                                               function go(funcName, fileName){
                                                   document.forms[0].action='/' + funcName;
                                                   document.forms[0].fileName.value = fileName;
                                                   document.forms[0].submit();
                                               }

                                               function deleteFile(fileName) {
                                                   if(confirm('Are you sure that you wish to permanently delete the file named "' + fileName + '"?')) {
                                                       go('DeleteFile', fileName);
                                                   }
                                               }
                                       </script>
                                 ''')
        user = datamodule.GetUser(self.request.get('userName'),
                                  self.request.get('password'))
        if (not user):
            self.response.out.write(
                '<strong style="color:red;">User not found</strong> - Please check your User Name and Password.</body></html>'
            )
            return

        files = datamodule.Files.gql('WHERE user = :1', user).fetch(1000, 0)

        if (not len(files)):
            self.response.out.write(
                '<span class="header">There are no files on record for this user</span></body></html>'
            )
            return

        self.response.out.write(
            '''<span class="header">List of Files</span>
                                 <form method="post" target="_self">
                                 <input name="userName" type="hidden" value="%s" />
                                 <input name="password" type="hidden" value="%s" />
                                 <input name="fileName" type="hidden" />
                                 <table cellspacing="0" cellpadding="5">''' %
            (self.request.get('userName'), self.request.get('password')))
        count = 0
        for file in files:
            count += 1
            self.response.out.write(
                '''<tr style="background-color:%s;">
                                         <td>%s.</td>
                                         <td width="400"><span onclick="javascript:go('GetFileAsHTML', '%s');return false;" class="link">%s</span></td>
                                         <td><a class="link" href="" onclick="javascript:go('GetFileAsHTML', '%s');return false;">Open File</a> |
                                             <a class="link" href="" onclick="javascript:deleteFile('%s');return false;">Delete File</a> |
                                             <a class="link" href="" onclick="javascript:go('GetFileText', '%s');return false;">View File Source</a></td>
                                     </tr>''' %
                ('#ffffff' if count % 2 else '#f1f1f1', count, file.fileName,
                 file.fileName, file.fileName, file.fileName, file.fileName))
        self.response.out.write('</table></body></html>')
Ejemplo n.º 5
0
    def getFileList(self):
        htmlHelper.SetContentTypeToXml(self)
        user = datamodule.GetUser(self.request.get('userName'),
                                  self.request.get('password'))
        if (not user):
            self.response.out.write(
                htmlHelper.XmlDeclaration +
                '<error errorId="4">User not found</error>')
            return

        files = datamodule.Files.gql('WHERE user = :1', user).fetch(1000, 0)
        self.response.out.write(htmlHelper.XmlDeclaration + '<files>')
        for file in files:
            self.response.out.write('<file fileName="%s" />' % file.fileName)
        self.response.out.write('</files>')
Ejemplo n.º 6
0
    def deleteUser(self):
        htmlHelper.SetContentTypeToXml(self)
        user = datamodule.GetUser(self.request.get('userName'),
                                  self.request.get('password'))
        if (not user):
            self.response.out.write(
                htmlHelper.XmlDeclaration +
                '<error errorId="4">User not found</error>')
            return

        files = GqlQuery('SELECT __key__ FROM Files WHERE user = :1', user)
        db.delete(files.fetch(1000, 0))
        user.delete()
        self.response.out.write(htmlHelper.XmlDeclaration +
                                '<OK>User Deleted</OK>')
Ejemplo n.º 7
0
 def getFileAsHTML(self):
     user = datamodule.GetUser(self.request.get('userName'),
                               self.request.get('password'))
     if (not user):
         self.response.out.write(
             '<strong style="color:red;">Error: User not found</strong>')
         return
     file = datamodule.Files.gql('WHERE user = :1 AND fileName = :2', user,
                                 self.request.get('fileName')).get()
     if (not file):
         self.response.out.write(
             '<strong style="color:red;">Error: File not found</strong>')
     else:
         self.response.out.write(
             htmlHelper.GetEntriesHTML(file.fileName, file.fileText))
Ejemplo n.º 8
0
 def getFileText(self):
     htmlHelper.SetContentTypeToXml(self)
     user = datamodule.GetUser(self.request.get('userName'),
                               self.request.get('password'))
     if (not user):
         self.response.out.write(
             htmlHelper.XmlDeclaration +
             '<error errorId="4">User not found</error>')
         return
     file = datamodule.Files.gql('WHERE user = :1 AND fileName = :2', user,
                                 self.request.get('fileName')).get()
     if (not file):
         self.response.out.write(
             htmlHelper.XmlDeclaration +
             '<error errorId="7">File not found</error>')
     else:
         self.response.out.write(file.fileText)