rajshukla1102 commited on
Commit
f92543a
·
verified ·
1 Parent(s): 7646003

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +35 -2
main.py CHANGED
@@ -54,6 +54,25 @@ def modify_title(title: str) -> str:
54
  parts = title.split(' ')
55
  return ' '.join(parts[1:]) if len(parts) > 1 else title
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  @app.post("/check-permission")
58
  async def check_permissions(request: PermissionRequest):
59
  try:
@@ -86,7 +105,7 @@ async def check_permissions(request: PermissionRequest):
86
  modified_title = modify_title(resource_title)
87
 
88
  permissions.append({
89
- "title": modified_title, # Use modified title here
90
  "link": resource,
91
  "action": action
92
  })
@@ -119,13 +138,24 @@ async def check_permissions(request: PermissionRequest):
119
  seen.add(child_tuple)
120
  unique_children.append(child)
121
 
 
122
  final_roles.append({
123
  "title": role_name,
124
  "value": role_name,
125
  "icon": "PencilRuler",
126
- "children": unique_children
 
127
  })
128
 
 
 
 
 
 
 
 
 
 
129
  return final_roles
130
 
131
  except Exception as e:
@@ -134,3 +164,6 @@ async def check_permissions(request: PermissionRequest):
134
  status_code=500,
135
  detail=f"Error checking permissions: {str(e)}"
136
  )
 
 
 
 
54
  parts = title.split(' ')
55
  return ' '.join(parts[1:]) if len(parts) > 1 else title
56
 
57
+ def get_sequence_number(role_title: str) -> int:
58
+ """Extract sequence number from role title for sorting"""
59
+ try:
60
+ return int(role_title.split()[0])
61
+ except (IndexError, ValueError):
62
+ return float('inf') # Put roles without numbers at the end
63
+
64
+ def clean_role_title(role_title: str) -> str:
65
+ """Remove sequence number from role title"""
66
+ try:
67
+ parts = role_title.split()
68
+ # Check if first part is a number
69
+ int(parts[0])
70
+ # If it is, return everything after the first part
71
+ return ' '.join(parts[1:])
72
+ except (IndexError, ValueError):
73
+ # If there's no number or invalid format, return original title
74
+ return role_title
75
+
76
  @app.post("/check-permission")
77
  async def check_permissions(request: PermissionRequest):
78
  try:
 
105
  modified_title = modify_title(resource_title)
106
 
107
  permissions.append({
108
+ "title": modified_title,
109
  "link": resource,
110
  "action": action
111
  })
 
138
  seen.add(child_tuple)
139
  unique_children.append(child)
140
 
141
+ # Store original title for sorting
142
  final_roles.append({
143
  "title": role_name,
144
  "value": role_name,
145
  "icon": "PencilRuler",
146
+ "children": unique_children,
147
+ "original_title": role_name # Store original title for sorting
148
  })
149
 
150
+ # Sort final_roles based on sequence number
151
+ final_roles.sort(key=lambda x: get_sequence_number(x["original_title"]))
152
+
153
+ # Clean up titles and remove original_title field
154
+ for role in final_roles:
155
+ role["title"] = clean_role_title(role["title"])
156
+ role["value"] = clean_role_title(role["value"])
157
+ del role["original_title"]
158
+
159
  return final_roles
160
 
161
  except Exception as e:
 
164
  status_code=500,
165
  detail=f"Error checking permissions: {str(e)}"
166
  )
167
+
168
+ if __name__ == "__main__":
169
+ uvicorn.run(app, host="0.0.0.0", port=8000)