Files
tehran_tala/apps/admin-panel/dist/assets/Permission-Lu5tWLiM.js
T
s.esmaeiliandClaude Opus 5 53436ec855 chore(release): prepare release/delivery + fix docker env passthrough
DEPLOY-01: docker-compose.yml passed only DATABASE_URL and PORT to the api
service, so JWT_SECRET, JWT_CUSTOMER_SECRET, OTP_MASTER_CODE and every SMS_TREZ_*
variable were silently dropped in Docker. A deployed build would have used the
development JWT fallback and would not have had the delivery master code at all,
so the demo login would have failed with no obvious cause. All are now forwarded,
defaulting to empty (which the code treats as unset); verified with
`docker compose config`.

TEST-01: test-sales-expert-roundtrip.cjs had localhost:3077 hardcoded and could
only connect by accident. Now defaults to the repo's API_PORT. 33/33.

DELIVERY.md documents env vars (names only), run/deploy commands, how migrations
run inside the container, the verification results and the known issues.

release/delivery contains both parity branches with no conflicts (fast-forward).
build 5/5, jest 45/45, admin smoke 43/43, apps smoke 43/43, B2B scan 34/34,
B2B writes 25/25, auth-smoke 32/32, typecheck clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 00:30:09 +03:30

2 lines
15 KiB
JavaScript

import{d as R,u as j,v as z,a as u,w as r,A as K,l as m,x as v,z as _,r as o,o as d,c as y,n as W,b as $,e as q,F as G,i as g,f as b,y as H,p as E,t as J}from"./index-JKzARUiG.js";import{u as Q}from"./auth-CoowXOEI.js";import{_ as X}from"./_plugin-vue_export-helper-DlAUqK2U.js";const C=[{title:"پیشخوان",key:"dashboard.view"},{title:"اشخاص",key:"persons",children:[{title:"اضافه کردن شخص",key:"persons.create",children:[{title:"افزودن کارشناس فروش",key:"persons.create.seller"},{title:"افزودن مشتری عمده",key:"persons.create.client"},{title:"افزودن مشتری تک",key:"persons.create.single"}]},{title:"لیست کارشناسان فروش",key:"persons.list.sellers",children:[{title:"ویرایش اطلاعات کارشناس فروش",key:"persons.list.sellers.edit"},{title:"مشاهده سفارشات کارشناس فروش",key:"persons.list.sellers.view.orders"},{title:"مشاهده اسناد مالی کارشناس فروش",key:"persons.list.sellers.view.documents"},{title:"توقف سفارش کارشناس فروش",key:"persons.list.sellers.unable.order"},{title:"فعال سازی سفارش کارشناس فروش",key:"persons.list.sellers.able.order"},{title:"فعال سازی حساب کاربری کارشناس فروش",key:"persons.list.sellers.able"},{title:"غیر فعال سازی حساب کاربری کارشناس فروش",key:"persons.list.sellers.unable"}]},{title:"لیست مشتریان عمده",key:"persons.list.client.omde",children:[{title:"مشاهده اطلاعات مشتریان عمده",key:"persons.list.client.omde.view"},{title:"ویرایش اطلاعات مشتری عمده",key:"persons.list.client.omde.edit"},{title:"مشاهده سفارشات مشتری عمده",key:"persons.list.client.omde.view.orders"},{title:"مشاهده اسناد مالی مشتری عمده",key:"persons.list.client.omde.view.documents"},{title:"توقف سفارش مشتری عمده",key:"persons.list.client.omde.unable.order"},{title:"فعال سازی سفارش مشتری عمده",key:"persons.list.client.omde.able.order"},{title:"فعال سازی مشتری عمده",key:"persons.list.client.omde.able"},{title:"غیر فعال سازی مشتری عمده",key:"persons.list.client.omde.unable"}]},{title:"لیست مشتریان تک",key:"persons.list.client.single",children:[{title:"مشاهده اطلاعات مشتریان تک",key:"persons.list.client.single.view"},{title:"ویرایش اطلاعات مشتری تک",key:"persons.list.client.single.edit"},{title:"مشاهده اطلاعات مشتری تک",key:"persons.list.client.single.view"}]}]},{title:"شعب",key:"branch",children:[{title:"افزودن شعب",key:"branch.create"},{title:" لیست شعب",key:"branch.list"}]},{title:"کارگاه",key:"workshop",children:[{title:"افزودن کارگاه",key:"workshop.create"},{title:" لیست کارگاه ها",key:"workshop.list"}]},{title:"محصولات",key:"product",children:[{title:"افزودن محصول",key:"product.create"},{title:"لیست محصولات",key:"product.list",children:[{title:"مشاهده لیست محصولات",key:"product.list.view"},{title:"ویرایش اطلاعات محصول",key:"product.list.edit"},{title:"مشاهده اطلاعات جامع محصول",key:"product.list.view"},{title:"تنوع های محصول",key:"product.list.variants",children:[{title:"مشاهده تنوع های محصول",key:"product.list.variants.view"},{title:"ویرایش تنوع محصول",key:"product.list.variants.edit"},{title:"حذف تنوع محصول",key:"product.list.variants.remove"},{title:"افزودن تنوع محصول",key:"product.list.variants.add"}]},{title:"حذف محصول",key:"product.list.remove"},{title:"تغییر دسته ای",key:"product.list.group.edit"}]},{title:"تغییر درصد محصولات",key:"product.percent"}]},{title:"سفارشات",key:"order",children:[{title:"لیست سفارشات",key:"order.list",children:[{title:"مشاهده لیست سفارشات",key:"order.list.view"},{title:"وضعیت سفارش",key:"order.list.sts",children:[{title:"مشاهده وضعیت سفارش",key:"order.list.sts.view"},{title:"حذف وضعیت",key:"order.list.sts.remove"},{title:"ثبت وضعیت",key:"order.list.sts.submit"}]},{title:"مشاهده سفارش",key:"order.list.view"},{title:"ویرایش سفارش",key:"order.list.view.edit"},{title:"دریافت pdf",key:"order.list.pdf"}]},{title:"سفارشات عمده",key:"order.omde",children:[{title:"وضعیت سفارش",key:"order.omde.state",children:[{title:"مشاهده وضعیت سفارش",key:"order.omde.state.view"},{title:"ثبت وضعیت سفارش",key:"order.omde.state.submit"},{title:"حذف وضعیت سفارش",key:"order.omde.state.remove"}]},{title:"مشاهده سفارش",key:"order.omde.view"},{title:"ویرایش سفارش",key:"order.omde.view.edit"},{title:"حذف آیتم از سفارش",key:"order.omde.view.remove"},{title:"حذف سفارش",key:"order.omde.remove"},{title:"دریافت pdf سفارش",key:"order.omde.get"}]},{title:"سفارشات ساختنی",key:"order.makeOrder",children:[{title:"وضعیت سفارش",key:"order.makeOrder.state",children:[{title:"مشاهده وضعیت سفارش",key:"order.makeOrder.state.view"},{title:"ثبت وضعیت سفارش",key:"order.makeOrder.state.submit"},{title:"حذف وضعیت سفارش",key:"order.makeOrder.state.remove"}]},{title:"مشاهده سفارش",key:"order.makeOrder.view"},{title:"ویرایش سفارش",key:"order.makeOrder.view.edit"},{title:"حذف آیتم از سفارش",key:"order.makeOrder.view.remove"},{title:"حذف سفارش",key:"order.makeOrder.remove"},{title:"دریافت pdf سفارش",key:"order.makeOrder.get"}]},{title:"لیست تامین",key:"order.tamin",children:[{title:"مشاهده لیست تامین",key:"order.tamin.view"},{title:"وضعیت سفارش",key:"order.tamin.state",children:[{title:"مشاهده وضعیت سفارش",key:"order.tamin.state.view"},{title:"ثبت وضعیت سفارش",key:"order.tamin.state.submit"},{title:"حذف وضعیت سفارش",key:"order.tamin.state.remove"}]},{title:"مشاهده سفارش",key:"order.tamin.view"},{title:"ویرایش سفارش",key:"order.tamin.view.edit"}]},{title:"ثبت سفارش تک",key:"order.create"}]},{title:"مدیران",key:"user",children:[{title:"افزودن مدیر",key:"user.create"},{title:"لیست مدیران",key:"user.list",children:[{title:"مشاهده لیست مدیران",key:"user.list.view"},{title:"ویرایش مدیر",key:"user.list.edit"},{title:"حذف مدیر",key:"user.list.remove"},{title:"افزودن مدیر",key:"user.list.create"}]},{title:"دسترسی ها",key:"user.permission",children:[{title:"ویرایش دسترسی",key:"user.permission.edit"},{title:"افزودن دسترسی",key:"user.permission.create"}]}]},{title:"دسته بندی ها",key:"collection",children:[{title:"افزودن دسته بندی",key:"collection.create"},{title:" لیست دسته بندی ها",key:"collection.list",children:[{title:"مشاهده لیست دسته بندی ها",key:"collection.list.view"},{title:"ویرایش دسته",key:"collection.list.edit"},{title:"حذف دسته",key:"collection.list.remove"}]}]},{title:"اسناد مالی",key:"document",children:[{title:" لیست اسناد مالی",key:"document.list",children:[{title:"مشاهده لیست اسناد مالی",key:"document.list.view"},{title:"ویرایش سند مالی",key:"document.list.edit"},{title:"حذف سند مالی",key:"document.list.remove"},{title:"رد کردن سند مالی",key:"document.list.deny"},{title:"تأیید کردن سند مالی",key:"document.list.confirm"},{title:"دریافت pdf سند مالی",key:"document.list.get"}]},{title:"وارد کردن سند مالی مشتری",key:"document.create"}]},{title:"استثناعات تخفیف",key:"offersIgnore"},{title:"تخفیفات",key:"offers",children:[{title:" لیست تخفیفات",key:"offers.list",children:[{title:"مشاهده لیست تخفیفات",key:"offers.list.view"},{title:"ویرایش تخفیف عمده",key:"offers.list.edit"},{title:"ویرایش تخفیف تک",key:"offers.list.tak.edit"},{title:"حذف تخفیف عمده",key:"offers.list.remove"},{title:"حذف تخفیف تک",key:"offers.list.tak.remove"}]},{title:"تعریف تخفیف عمده",key:"offers.create"},{title:"تعریف تخفیف تک",key:"offers.create.tak"},{title:"تخفیف اتوماتیک",key:"offers.autopromotion"}]},{title:"فاکتور انتقال",key:"invoice",children:[{title:"افزودن فاکتور",key:"invoice.create"},{title:" لیست فاکتورها",key:"invoice.list"}]},{title:"گزارشات",key:"report",children:[{title:"گزارش تجمیعی سفارشات و اسناد مالی",key:"report.order.item"},{title:"گزارش محصولات",key:"report.product"}]},{title:"شهرها",key:"cities",children:[{title:"افزودن شهر",key:"cities.create"},{title:"لیست شهرها",key:"cities.list",children:[{title:"مشاهده لیست شهرها",key:"cities.list.view"},{title:"حذف شهر",key:"cities.list.remove"},{title:"مشاهده شهر",key:"cities.list.view"},{title:"ویرایش شهر",key:"cities.list.view.edit"}]}]},{title:"دیدگاه ها",key:"comment",children:[{title:"مشاهده لیست دیدگاه ها",key:"comment.view.all"},{title:"تغییر وضعیت دیدگاه",key:"comment.state"},{title:"مشاهده دیدگاه",key:"comment.view"},{title:"ویرایش دیدگاه",key:"comment.view.edit"},{title:"حذف دیدگاه",key:"comment.remove"}]},{title:"پیامک",key:"sms",children:[{title:"ارسال پیامک",key:"sms.create",children:[{title:"ارسال برای یک شماره تلفن",key:"sms.create.single"},{title:"ارسال برای همه کاربران",key:"sms.create.all"},{title:"ارسال برای کارشناسان فروش",key:"sms.create.reagent"},{title:"ارسال برای مشتریان عمده",key:"sms.create.omde"},{title:"ارسال برای چند شماره تلفن",key:"sms.create.multiple"}]},{title:"لیست پیامک های ارسال شده",key:"sms.list"}]},{title:"کیف پول",key:"wallet",children:[{title:"لیست کیف پول های شارژ شده",key:"wallet.list"},{title:"شارژ کیف پول",key:"wallet.charge"},{title:"تغییر درصد شارژ کیف پول",key:"wallet.percent"}]},{title:"نوتیفیکیشن",key:"notify",children:[{title:"ارسال نوتیفیکیشن",key:"notify.create",children:[{title:"ارسال برای کارشناسان فروش",key:"notify.create.multiple.reagent"},{title:"ارسال برای یک مشتری",key:"notify.create.single.customer"},{title:"ارسال برای مشتریان عمده",key:"notify.create.multiple.omde"},{title:"ارسال برای همه مشتریان",key:"notify.create.multiple.customer"},{title:"ارسال برای یک مدیر",key:"notify.create.single.admin"},{title:"ارسال برای همه مدیران",key:"notify.create.multiple.admin"}]},{title:"لیست نوتیفیکیشن های دریافتی",key:"notify.me"}]},{title:"پیکربندی",key:"config",children:[{title:"مدیریت ثابت ها",key:"config.statics",children:[{title:"برند ها",key:"config.statics.brand",children:[{title:"افزودن برند",key:"config.statics.brand.create"},{title:"ویرایش برند",key:"config.statics.brand.edit"},{title:"حذف برند",key:"config.statics.brand.remove"}]},{title:"برچسب ها",key:"config.statics.tags",children:[{title:"افزودن برچسب",key:"config.statics.tags.create"},{title:"ویرایش برچسب",key:"config.statics.tags.edit"},{title:"حذف برچسب",key:"config.statics.tags.remove"}]}]},{title:"مدیریت کیف پول",key:"config.wallet"},{title:"گزارش",key:"config.report"}]},{title:"آمار",key:"statics"},{title:"خبرنامه",key:"newsletters.newsletters"},{title:"سفارشی",key:"custom",children:[{title:"اسلایدر موبایل",key:"custom.config.statics.slider"},{title:"برچسب بنر اول سایت",key:"custom.config.statics.tags.banner.ids"}]}],Z={class:"grid-2"},O="84",x="85",T=104,ee=R({__name:"Permission",setup(te){const N=j(),S=Q(),p=e=>!!N.hasPermission(e),a=m(x),k=m(""),n=m([]),B=m(!0),D=m([]),s=H({}),c=E(()=>a.value===O),I=E(()=>{var t;let e=D.value;return p("user.permission.create")||(e=e.filter(i=>String(i.id)!==O)),((t=S.user)==null?void 0:t.ut)!==T&&(e=e.filter(i=>i.id!==T)),e}),V=E(()=>{var e;return((e=S.user)==null?void 0:e.ut)===T?C:C.filter(t=>t.key!=="custom")});async function P(){try{const{data:e}=await v.get("const/__list__ut");D.value=e}catch(e){console.log(e)}}async function f(e){if(!e){n.value=[];return}if(e===O){n.value=[];return}try{const{data:t}=await v.get(`roles/${e}`);n.value=t}catch{_.error("خطا در دریافت اطلاعات")}}async function A(){var e,t;if(Object.keys(s).forEach(i=>delete s[i]),!a.value){s.ut="لطفاسطح دسترسی را انتخاب کنید";return}if(c.value&&!k.value){s.user="لطفا نام سطح دسترسی را وارد کنید";return}try{let i=a.value;if(c.value){const{data:h}=await v.post("const",{key:"__list__ut",val:k.value});i=String(h.id)}await v.post("roles/create",{ut:i,roles:n.value}),await P(),c.value&&(a.value=i,k.value="",await f(i)),_.success("عملیات با موفقیت انجام شد")}catch(i){_.error(((t=(e=i==null?void 0:i.response)==null?void 0:e.data)==null?void 0:t.message)??"خطا در ثبت اطلاعات")}}return z(async()=>{await P(),a.value=x,await f(x)}),(e,t)=>{const i=o("a-select-option"),h=o("a-select"),w=o("a-form-item"),F=o("a-input"),Y=o("a-tree"),U=o("a-button"),L=o("a-card"),M=o("a-form");return d(),u(M,{layout:"vertical",onSubmit:K(A,["prevent"])},{default:r(()=>[y(L,{id:"rid",title:"دسترسی ها"},{default:r(()=>[W("div",Z,[y(w,{label:"سطح کاربر","validate-status":s.ut?"error":"",help:s.ut},{default:r(()=>[y(h,{value:a.value,"onUpdate:value":t[0]||(t[0]=l=>a.value=l),"allow-clear":"",onChange:f},{default:r(()=>[(d(!0),$(G,null,q(I.value,l=>(d(),u(i,{key:l.id,value:String(l.id)},{default:r(()=>[b(J(l.title),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["validate-status","help"]),c.value&&p("user.permission.create")?(d(),u(w,{key:0,label:"نام سطح دسترسی","validate-status":s.user?"error":"",help:s.user},{default:r(()=>[y(F,{value:k.value,"onUpdate:value":t[1]||(t[1]=l=>k.value=l),"allow-clear":""},null,8,["value"])]),_:1},8,["validate-status","help"])):g("",!0),y(w,{label:"نقش ها",class:"tree-item"},{default:r(()=>[y(Y,{"checked-keys":n.value,"onUpdate:checkedKeys":t[2]||(t[2]=l=>n.value=l),"check-strictly":!1,checkable:"",style:{width:"100%"},"tree-data":V.value,"field-names":{title:"title",key:"key",children:"children"},"auto-expand-parent":B.value},null,8,["checked-keys","tree-data","auto-expand-parent"])]),_:1})]),!c.value&&p("user.permission.edit")?(d(),u(U,{key:0,type:"primary","html-type":"submit"},{default:r(()=>[...t[3]||(t[3]=[b(" ثبت تغییرات ",-1)])]),_:1})):g("",!0),c.value&&p("user.permission.create")?(d(),u(U,{key:1,type:"primary","html-type":"submit"},{default:r(()=>[...t[4]||(t[4]=[b(" افزودن ",-1)])]),_:1})):g("",!0)]),_:1})]),_:1})}}}),se=X(ee,[["__scopeId","data-v-09e9c63b"]]);export{se as default};