def post(self, request): with self._handle_exception(request): groupname = request.data.get('groupname', None) gid = request.data.get('gid', None) if (gid is not None): gid = int(gid) admin = request.data.get('admin', True) if (groupname is None or re.match(settings.USERNAME_REGEX, groupname) is None): e_msg = ( 'Groupname is invalid. It must confirm to the regex: %s' % (settings.USERNAME_REGEX)) handle_exception(Exception(e_msg), request) if (len(groupname) > 30): e_msg = ('Groupname cannot be more than 30 characters long') handle_exception(Exception(e_msg), request) for g in combined_groups(): if (g.groupname == groupname): e_msg = ( 'Group(%s) already exists. Choose a different one' % g.groupname) handle_exception(Exception(e_msg), request) if (g.gid == gid): e_msg = ('GID(%s) already exists. Choose a different one' % gid) handle_exception(Exception(e_msg), request) groupadd(groupname, gid) grp_entries = grp.getgrnam(groupname) gid = grp_entries[2] group = Group(gid=gid, groupname=groupname, admin=admin) group.save() return Response(GroupSerializer(group).data)
def post(self, request): with self._handle_exception(request): groupname = request.data.get('groupname', None) gid = request.data.get('gid', None) if (gid is not None): gid = int(gid) admin = request.data.get('admin', True) if (groupname is None or re.match(settings.USERNAME_REGEX, groupname) is None): e_msg = ('Groupname is invalid. It must confirm to the regex: %s' % (settings.USERNAME_REGEX)) handle_exception(Exception(e_msg), request) if (len(groupname) > 30): e_msg = ('Groupname cannot be more than 30 characters long') handle_exception(Exception(e_msg), request) for g in combined_groups(): if (g.groupname == groupname): e_msg = ('Group(%s) already exists. Choose a different one' % g.groupname) handle_exception(Exception(e_msg), request) if (g.gid == gid): e_msg = ('GID(%s) already exists. Choose a different one' % gid) handle_exception(Exception(e_msg), request) groupadd(groupname, gid) grp_entries = grp.getgrnam(groupname) gid = grp_entries[2] group = Group(gid=gid, groupname=groupname, admin=admin) group.save() return Response(GroupSerializer(group).data)
def post(self, request): with self._handle_exception(request): groupname = request.data.get("groupname", None) gid = request.data.get("gid", None) if gid is not None: gid = int(gid) admin = request.data.get("admin", True) if (groupname is None or re.match(settings.USERNAME_REGEX, groupname) is None): e_msg = ( "Groupname is invalid. It must conform to the regex: ({})." ).format(settings.USERNAME_REGEX) handle_exception(Exception(e_msg), request, status_code=400) if len(groupname) > 30: e_msg = "Groupname cannot be more than 30 characters long." handle_exception(Exception(e_msg), request, status_code=400) for g in combined_groups(): if g.groupname == groupname: e_msg = ( "Group ({}) already exists. Choose a different one." ).format(g.groupname) handle_exception(Exception(e_msg), request, status_code=400) if g.gid == gid: e_msg = ("GID ({}) already exists. Choose a different one." ).format(gid) handle_exception(Exception(e_msg), request, status_code=400) groupadd(groupname, gid) grp_entries = grp.getgrnam(groupname) gid = grp_entries[2] group = Group(gid=gid, groupname=groupname, admin=admin) group.save() return Response(GroupSerializer(group).data)