Frappe tutorial. No permission for System Settings while trying to upload file

Hi!
I am trying to follow frappe tutorial. When I am trying to upload file from user I am getting error in frappe bench console.

    Traceback (most recent call last):
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/app.py", line 55, in application
09:24:10 web.1            |     response = frappe.handler.handle()
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/handler.py", line 20, in handle
09:24:10 web.1            |     data = execute_cmd(cmd)
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/handler.py", line 55, in execute_cmd
09:24:10 web.1            |     return frappe.call(method, **frappe.form_dict)
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/__init__.py", line 1013, in call
09:24:10 web.1            |     return fn(*args, **newargs)
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/client.py", line 72, in get_value
09:24:10 web.1            |     frappe.throw(_("No permission for {0}".format(doctype)), frappe.PermissionError)
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/__init__.py", line 345, in throw
09:24:10 web.1            |     msgprint(msg, raise_exception=exc, title=title, indicator='red')
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/__init__.py", line 331, in msgprint
09:24:10 web.1            |     _raise_exception()
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/__init__.py", line 304, in _raise_exception
09:24:10 web.1            |     raise raise_exception(msg)
09:24:10 web.1            | PermissionError: No permission for System Settings
09:24:10 web.1            | 
09:24:10 web.1            | 127.0.0.1 - - [27/Dec/2018 09:24:10] "POST / HTTP/1.1" 403 -
09:24:10 web.1            | INFO:werkzeug:127.0.0.1 - - [27/Dec/2018 09:24:10] "POST / HTTP/1.1" 403 -
09:24:10 web.1            | 127.0.0.1 - - [27/Dec/2018 09:24:10] "GET /assets/frappe/images/ui/ajax-loader.gif HTTP/1.1" 304 -
09:24:10 web.1            | INFO:werkzeug:127.0.0.1 - - [27/Dec/2018 09:24:10] "GET /assets/frappe/images/ui/ajax-loader.gif HTTP/1.1" 304 -
09:24:10 web.1            | 127.0.0.1 - - [27/Dec/2018 09:24:10] "GET /assets/js/desk.min.js.map HTTP/1.1" 304 -
09:24:10 web.1            | INFO:werkzeug:127.0.0.1 - - [27/Dec/2018 09:24:10] "GET /assets/js/desk.min.js.map HTTP/1.1" 304 -
09:24:10 web.1            | Traceback (most recent call last):
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/handler.py", line 124, in uploadfile
09:24:10 web.1            |     ret.save()
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/model/document.py", line 259, in save
09:24:10 web.1            |     return self._save(*args, **kwargs)
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/model/document.py", line 282, in _save
09:24:10 web.1            |     self.insert()
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/model/document.py", line 209, in insert
09:24:10 web.1            |     self.check_permission("create")
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/model/document.py", line 170, in check_permission
09:24:10 web.1            |     if not self.has_permission(permtype):
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/model/document.py", line 180, in has_permission
09:24:10 web.1            |     return frappe.has_permission(self.doctype, permtype, self, verbose=verbose)
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/__init__.py", line 567, in has_permission
09:24:10 web.1            |     out = frappe.permissions.has_permission(doctype, ptype, doc=doc, verbose=verbose, user=user)
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/apps/frappe/frappe/permissions.py", line 30, in inner
09:24:10 web.1            |     del frappe.flags['has_permission_check_logs']
09:24:10 web.1            |   File "/home/siarhei/WorkProjects/frappe-tutorial/frappe-bench/env/local/lib/python2.7/site-packages/werkzeug/local.py", line 353, in __delitem__
09:24:10 web.1            |     del self._get_current_object()[key]
09:24:10 web.1            | KeyError: u'has_permission_check_logs'

Administrator user can upload file without any errors.

Role settings:

Frappe version - v12.x.x-develop () (develop)

Give this a try.

Can you check your permissions on doctype named File. Does your user have create permissions on that ? If not then provide them and try again.

TIP : Always mention your frappe and erpnext version in your posts.

EDIT : Check for write permissions wrt the reply.

1 Like

Thank you!
Changed my permission for user role but still getting this error.
Also, updated my post with frappe version - v12.x.x-develop () (develop)

Actually, Thank You. After setting permissions to Write I can upload pictures.
You are very helpful.

So you had to change permissions on which Doctype to be specific ?

One more thing ? Are you using the develop branch as a production instance or just to test experimental features ? Because master is the production branch which has v10 features, whereas staging has v11 features which should be getting released sometime later.

On File DocType. Maybe I didn’t notice this in tutorial.

I am using develop just for learning frappe.

Oh Okay. You are trying out the tutorial. Then it doesn’t matter. However if you decide to use Frappe later you should move to master.

All the best !