"use strict";(self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[1367,6336,5787,7591,4766,1936],{2735:function(e,t,r){r.d(t,{Qj:function(){return j},zx:function(){return I}});var n=r(65443),a=r.n(n),o=r(94159),l=r(6285);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;ta()("leading-none","align-middle","py-2","px-4","no-select",e.className,{[u]:"pill"===e.buttonStyle,[m]:"roundrect"===e.buttonStyle,[p]:"authn"===e.buttonStyle,[b]:"cherry"===e.color,[g]:"strawberry"===e.color,[f]:"mango"===e.color,[z]:"not-black"===e.color,[y]:"red"===e.color,[E]:"accent"===e.color,[h]:"green"===e.color,[_]:"secondary"===e.color,[v]:"authn-primary"===e.color,[x]:"authn-other"===e.color}),I=o.forwardRef((({buttonStyle:e,color:t,className:r,...n},a)=>{const l=w({buttonStyle:e,color:t,className:r,...n});return o.createElement("button",s({},n,{className:l,ref:a}),n.children)}));I.displayName="Button";const j=o.forwardRef((({buttonStyle:e,color:t,...r},n)=>{const a=w({buttonStyle:e,color:t,...r});return o.createElement("a",s({},r,{className:a,ref:n}),r.children)}));j.displayName="LinkButton"},68796:function(e,t,r){r.r(t),r.d(t,{ActivateUserForm:function(){return d}});var n=r(71860),a=r(94159),o=r(99838),l=r(3160),s=r(2735),i=r(70496);const d=({userId:e})=>{const t=(0,l.s0)(),{handleSubmit:r}=(0,o.cI)(),d=n.S.moderation.user.activate.useMutation();return a.createElement("form",{className:"flex max-w-fit flex-col gap-2 rounded-lg border border-accent p-3",onSubmit:r((async()=>{await d.mutateAsync({userId:e}),t(0)}))},a.createElement("h4",{className:"h4"},"activate user"),a.createElement(i.v,{level:"info",className:"prose"},"this generates a new single-use invite and activates the user with it, sending them an email to let them know they can post now."),a.createElement(s.zx,{type:"submit",buttonStyle:"pill",color:"cherry",className:"w-fit"},"activate user"))}},69458:function(e,t,r){r.r(t),r.d(t,{BanUserForm:function(){return d}});var n=r(71860),a=r(94159),o=r(99838),l=r(3160),s=r(2735),i=r(70496);const d=({userId:e})=>{const{register:t,handleSubmit:r}=(0,o.cI)(),d=(0,l.s0)(),c=n.S.moderation.user.ban.useMutation();return a.createElement("form",{className:"flex max-w-fit flex-col gap-2 rounded-lg border border-accent p-3",onSubmit:r((t=>c.mutateAsync({userId:e,banReason:t.banReason}).then((()=>d(0)))))},a.createElement("h4",{className:"h4"},"ban user"),a.createElement(i.v,{level:"warning",className:"prose"},a.createElement("p",null,a.createElement("b",null,"HEADS UP!"),' This will add the "suspended" permission to the user as well as the "suspended" flag to their self-project and all projcts which they are the sole editor of.'),a.createElement("p",null,"This will also delete ALL POSTS AND COMMENTS from those projects."),a.createElement("p",null,"This last part is very difficult to undo, so ONLY RUN THIS IF YOU ARE GOING SCORCHED EARTH!")),a.createElement("label",null,"reason for banning user:"),a.createElement("textarea",t("banReason",{required:!0})),a.createElement(s.zx,{type:"submit",buttonStyle:"pill",color:"cherry",className:"w-fit"},"ban user"))}},89079:function(e,t,r){r.r(t),r.d(t,{BirthdateEditForm:function(){return c}});var n=r(94159),a=r(99838),o=r(71860),l=r(84879),s=r(2735);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{register:r,handleSubmit:l,formState:c}=(0,a.cI)({defaultValues:{birthdate:t.substring(0,10)}}),u=o.S.moderation.user.changeBirthdate.useMutation();return n.createElement("form",{onSubmit:l((async({birthdate:t})=>{await u.mutateAsync({userId:e.userId,date:t})})),className:"flex flex-row items-center gap-4"},n.createElement("input",i({type:"date",max:d.toISODate()},r("birthdate",{required:!0,max:d.toISODate()}))),n.createElement(s.zx,{buttonStyle:"pill",color:"cherry",type:"submit"},"save birthdate"),c.isSubmitting?n.createElement("span",{className:"font-bold"},"sending..."):null,c.isSubmitSuccessful?n.createElement("span",{className:"font-bold text-green"},"Saved!"):null)}},29785:function(e,t,r){r.r(t),r.d(t,{ManagePermissionsForm:function(){return u}});var n=r(2735),a=r(12093),o=r(29289),l=r(86036),s=r.n(l),i=r(94159),d=r(99838);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{register:r,handleSubmit:l}=(0,d.cI)(),{register:u,handleSubmit:m}=(0,d.cI)(),p=o.y3.options.filter((t=>-1===e.indexOf(t))),b=async e=>{try{const r={userId:t.userId,...e};"grant"===e.action?await s().post(a.ZP.public.apiV1.moderation.grantOrRevokePermission().toString(),r):await s().delete(a.ZP.public.apiV1.moderation.grantOrRevokePermission().toString(),{data:r})}finally{window.location.reload()}};return i.createElement(i.Fragment,null,i.createElement("form",{className:"flex max-w-fit flex-col gap-2 rounded-lg border border-accent p-3",onSubmit:l(b)},i.createElement("h4",{className:"h4"},"grant permissions"),i.createElement("input",c({type:"hidden",value:"grant"},r("action"))),"permission to grant:",p.map((e=>i.createElement("div",{key:e},i.createElement("input",c({type:"radio",id:`grant-permission-${e}`,value:e},r("permission",{required:!0}))),i.createElement("label",{htmlFor:`permission-${e}`},e)))),"reason for granting permission:",i.createElement("textarea",r("reason",{required:!0})),i.createElement(n.zx,{type:"submit",buttonStyle:"pill",color:"cherry",className:"w-fit"},"grant permission")),i.createElement("form",{className:"flex max-w-fit flex-col gap-2 rounded-lg border border-accent p-3",onSubmit:m(b)},i.createElement("h4",{className:"h4"},"revoke permissions"),i.createElement("input",c({type:"hidden",value:"revoke"},u("action"))),"permission to revoke:",e.map((e=>i.createElement("div",{key:e},i.createElement("input",c({type:"radio",id:`revoke-permission-${e}`,value:e},u("permission",{required:!0}))),i.createElement("label",{htmlFor:`permission-${e}`},e)))),"reason for revoking permission:",i.createElement("textarea",u("reason",{required:!0})),i.createElement(n.zx,{type:"submit",buttonStyle:"pill",color:"cherry",className:"w-fit"},"revoke permission")))}},32259:function(e,t,r){r.r(t),r.d(t,{PurgeUserForm:function(){return d}});var n=r(94159),a=r(99838),o=r(2735),l=r(70496),s=r(71860);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{register:r,handleSubmit:d,watch:c}=(0,a.cI)(),u=c(),m=s.S.moderation.user.purge.useMutation(),{data:p}=s.S.moderation.user.hasActiveSubscription.useQuery({userId:t},{suspense:!0});return n.createElement("form",{className:"flex max-w-fit flex-col gap-2 rounded-lg border border-accent p-3",onSubmit:d((async()=>{await m.mutateAsync({userId:t})}))},n.createElement("h4",{className:"h4"},"purge user"),p?n.createElement(l.v,{level:"warning",className:"prose"},n.createElement("p",null,"This user (",e,") cannot currently be purged because they have one or more active subscriptions. Cancel and refund them manually first from the Stripe dashboard.")):n.createElement(n.Fragment,null,n.createElement(l.v,{level:"warning",className:"prose"},n.createElement("p",null,n.createElement("b",null,"HEADS UP!")," This will perform the following irreverseable operations:",n.createElement("ul",null,n.createElement("li",null,"purge this user's self-project;"),n.createElement("li",null,"purge all non-self projects for which this user is the sole editor;"),n.createElement("li",null,"permanently delete this user"))),n.createElement("p",null,"Only use this form if you're doing it at user request!")),n.createElement("label",null,"I've read the warnings and I'm still gonna do it:"),n.createElement("input",i({type:"checkbox"},r("confirmed",{required:!0}))),n.createElement(o.zx,{type:"submit",buttonStyle:"pill",color:"cherry",className:"w-fit",disabled:!u.confirmed},"purge user")))}},86234:function(e,t,r){r.r(t),r.d(t,{ManageUser:function(){return g}});var n=r(71860),a=r(94159),o=r(68796),l=r(69458),s=r(29785),i=r(32259),d=r(12093),c=r(89079),u=r(3160),m=r(2735),p=r(46975);const b=({userId:e})=>{const t=(0,u.s0)(),r=n.S.moderation.user.reset2FA.useMutation();return a.createElement(m.zx,{buttonStyle:"pill",color:"cherry",className:"w-fit",onClick:()=>r.mutateAsync({userId:e}).then((()=>t(0)))},"reset 2FA")},g=({user:e,permissions:t,auditLog:r,userLookup:u,isActivated:m,moderationUserData:g})=>{const y=n.S.moderation.user.listEditedProjects.useQuery({userId:e.userId},{suspense:!0}),h=!!y.data?.projects&&!y.data.projects.some((e=>e.isSelfProject)),[f,z]=(0,a.useState)(!1),E=n.S.moderation.user.recreateSelfProject.useMutation(),_=n.S.useContext();return a.createElement("div",{className:"cohost-shadow-light dark:cohost-shadow-dark container mx-auto mt-12 flex flex-col gap-4 rounded-lg bg-notWhite p-3 text-notBlack"},a.createElement("h1",{className:"text-4xl"},"manage user"),a.createElement("div",{className:"prose"},a.createElement("table",null,a.createElement("tbody",null,a.createElement("tr",null,a.createElement("td",null,"e-mail address"),a.createElement("td",null,e.email," (",e.emailVerified?"verified":g.emailVerifyCanceled?"verification cancelled":"not verified",")")),a.createElement("tr",null,a.createElement("td",null,"2fa enabled"),a.createElement("td",null,e.twoFactorEnabled.toString(),e.twoFactorEnabled?a.createElement(b,{userId:e.userId}):null)),a.createElement("tr",null,a.createElement("td",null,"is adult"),a.createElement("td",null,e.isAdult?"true":"false"," (",a.createElement("a",{onClick:()=>z(!0),className:"cursor-pointer"},"edit birthdate"),")")),f?a.createElement("tr",null,a.createElement("td",{colSpan:2},a.createElement(c.BirthdateEditForm,{user:e,birthdate:g.birthdate}))):null,a.createElement("tr",null,a.createElement("td",null,"is activated"),a.createElement("td",null,m.toString())),a.createElement("tr",null,a.createElement("td",null,"stripe customer id"),a.createElement("td",null,g.stripeCustomerId?a.createElement("a",{href:`https://dashboard.stripe.com/customers/${g.stripeCustomerId}`,target:"_blank",rel:"noreferrer"},g.stripeCustomerId):"n/a")),a.createElement("tr",null,a.createElement("td",null,"last activity time"),a.createElement("td",null,g.lastActivityTime??"null"))))),a.createElement("div",{className:"prose rounded-lg border border-mango p-3"},a.createElement("h2",null,"edited projects"),a.createElement("ul",null,y.data?.projects.map((e=>a.createElement("li",{key:e.projectId},e.displayName," (",a.createElement("a",{href:d.vf.public.project.mainAppProfile({projectHandle:e.handle}).toString()},"@",e.handle),") -"," ",a.createElement("a",{href:d.vf.public.moderation.manageProject({projectHandle:e.handle}).toString()},"manage")))),h?a.createElement(a.Fragment,null,"this user appears to be missing a self project. you can ",a.createElement(p.k,{buttonSize:"regular",buttonColor:"cherry",type:"button",onClick:async()=>{await E.mutateAsync({userId:e.userId}),await _.moderation.user.listEditedProjects.invalidate()}},"create one")," for them."):null)),m?null:a.createElement(o.ActivateUserForm,{userId:e.userId}),a.createElement(s.ManagePermissionsForm,{user:e,permissions:t}),a.createElement("h4",{className:"h4"},"permission audit log"),a.createElement("table",{className:"prose"},a.createElement("thead",null,a.createElement("tr",null,a.createElement("td",null,"granted/revoked"),a.createElement("td",null,"permission"),a.createElement("td",null,"performed at"),a.createElement("td",null,"performed by user id (e-mail)"),a.createElement("td",null,"reason"))),a.createElement("tbody",null,r.map((e=>a.createElement("tr",{key:e.entryId},a.createElement("td",null,"grant_permission"===e.logType?"granted":"revoked"),a.createElement("td",null,e.permission),a.createElement("td",null,e.loggedAt),a.createElement("td",null,`${e.changedBy} (${u[e.changedBy.toString()]?.email??"undefined"})`),a.createElement("td",null,e.reason)))))),a.createElement("hr",null),a.createElement(l.BanUserForm,{userId:e.userId}),a.createElement(i.PurgeUserForm,{userId:e.userId,email:e.email}))};g.displayName="moderation/manage-user",t.default=g},29289:function(e,t,r){r.d(t,{C7:function(){return g},RC:function(){return k},RG:function(){return u},S5:function(){return N},s3:function(){return A},y3:function(){return c}});var n=r(6285),a=r(45793),o=r(89109),l=r(85771),s=r(22018),i=r(70769);const d=n.z.object({postId:o.rU,headline:n.z.string(),publishedAt:n.z.string().optional(),filename:n.z.string(),transparentShareOfPostId:o.rU.nullable(),shareOfPostId:o.rU.nullable(),state:s.e,numComments:n.z.number(),cws:n.z.string().array(),tags:n.z.string().array(),hasCohostPlus:n.z.boolean(),pinned:n.z.boolean(),commentsLocked:n.z.boolean(),sharesLocked:n.z.boolean()}),c=(d.extend({adultContent:n.z.boolean(),shareOfPostId:o.rU.nullable(),updatedAt:n.z.string(),blocks:l.gK.array(),attachments:n.z.object({attachmentId:o.I,filename:n.z.string()}).array()}).extend({adultContentOverride:n.z.boolean(),projectId:o.G9}),n.z.enum(["grant_all_permissions","moderator","read_only","suspended","no_new_projects","no_artist_alley"])),u=n.z.object({canInteract:a.B,canEdit:a.B,canHide:a.B,comment:n.z.object({body:n.z.string(),children:n.z.tuple([]),commentId:o.do,deleted:n.z.boolean(),postId:o.rU,postedAtISO:n.z.string(),inReplyTo:o.do.nullable(),hasCohostPlus:n.z.boolean(),hidden:n.z.boolean()}),poster:n.z.object({projectId:o.G9})}),m=n.z.lazy((()=>n.z.object({comment:n.z.object({commentId:o.do,postedAtISO:o.iV,deleted:n.z.boolean(),body:n.z.string(),children:m.array(),postId:o.rU,inReplyTo:o.do.nullable(),hasCohostPlus:n.z.boolean(),hidden:n.z.boolean()}),canInteract:a.B,canEdit:a.B,canHide:a.B,poster:i.Fx.optional()}))),p=(n.z.object({initial:n.z.string(),expanded:n.z.string().optional()}),n.z.enum(["none","log-in-first","deleted","unpublished","adult-content","blocked"])),b=n.z.object({spans:n.z.array(n.z.object({startIndex:n.z.number(),endIndex:n.z.number(),ast:n.z.string()})),readMoreIndex:n.z.number().nullable()}),g=n.z.lazy((()=>d.extend({blocks:l.oD.array(),plainTextBody:n.z.string(),postingProject:i.Fx,shareTree:g.array(),numSharedComments:n.z.number(),relatedProjects:i.Fx.array(),singlePostPageUrl:n.z.string().url(),effectiveAdultContent:n.z.boolean(),isEditor:n.z.boolean(),hasAnyContributorMuted:n.z.boolean(),contributorBlockIncomingOrOutgoing:n.z.boolean(),postEditUrl:n.z.string().url(),isLiked:n.z.boolean(),canShare:n.z.boolean(),canPublish:n.z.boolean(),limitedVisibilityReason:p,astMap:b,responseToAskId:o.iB.nullable()}))),y=(n.z.object({userId:o.Et,email:n.z.string(),emailVerified:n.z.boolean(),collapseAdultContent:n.z.boolean(),isAdult:n.z.boolean(),twoFactorEnabled:n.z.boolean()}),n.z.enum(["like","comment","share","follow","groupedLike","groupedFollow","groupedShare"])),h=n.z.object({type:y,createdAt:n.z.string(),fromProjectId:o.G9}),f=n.z.object({type:y,createdAt:n.z.string(),fromProjectIds:o.G9.array(),oldestCreatedAt:n.z.string()}),z=h.extend({toPostId:o.rU}),E=f.extend({toPostId:o.rU}),_=z.extend({type:n.z.literal("like"),relationshipId:o.cu}),v=E.extend({type:n.z.literal("groupedLike"),relationshipIds:o.cu.array()}),x=f.extend({type:n.z.literal("groupedFollow")}),w=E.extend({type:n.z.literal("groupedShare"),transparentShare:n.z.boolean(),sharePostIds:o.rU.array()}),I=z.extend({type:n.z.literal("comment"),commentId:o.do,inReplyTo:o.do.nullable()}),j=z.extend({type:n.z.literal("share"),sharePostId:o.rU,transparentShare:n.z.boolean()}),S=h.extend({type:n.z.literal("follow")}),k=n.z.discriminatedUnion("type",[_,I,j,S]),A=n.z.union([v,x,w]),N=n.z.union([k,A]),O=(n.z.enum(["edit_comment","delete_comment","edit_post","edit_project_ugc","edit_project_mod_flags","grant_permission","revoke_permission","add_editor","remove_editor","edit_project_flags","edit_user","2fa_login_failed","2fa_reset","2fa_reset_failed","artist_alley_approved","artist_alley_rejected","artist_alley_mod_edited"]),n.z.object({entryId:n.z.string(),loggedAt:n.z.string()})),C=O.extend({userId:o.Et}),P=O.extend({userId:o.Et,permission:c,changedBy:o.Et,reason:n.z.string()}),B=O.extend({projectId:o.G9,userId:o.Et,changedBy:o.Et,reason:n.z.string()}),T=O.extend({projectId:o.G9,oldAdultContent:n.z.boolean(),oldAdultContentOverride:n.z.boolean(),newAdultContent:n.z.boolean(),newAdultContentOverride:n.z.boolean(),changedBy:o.Et,reason:n.z.string()}),U=O.extend({projectId:o.G9,changedBy:o.Et,reason:n.z.string(),oldFlags:i.Xw.array(),newFlags:i.Xw.array()}),F=O.extend({userId:o.Et,oldEmail:n.z.string(),newEmail:n.z.string(),oldPendingEmail:n.z.string().nullable(),newPendingEmail:n.z.string().nullable(),oldUsername:n.z.string(),newUsername:n.z.string()}),L=O.extend({postId:o.rU,oldHeadline:n.z.string(),newHeadline:n.z.string(),oldBlocks:l.gK.array(),newBlocks:l.gK.array(),oldState:s.e,newState:s.e,oldAdultContent:n.z.boolean().optional(),newAdultContent:n.z.boolean().optional(),oldAdultContentOverride:n.z.boolean().optional(),newAdultContentOverride:n.z.boolean().optional(),oldCws:n.z.string().array().optional(),newCws:n.z.string().array().optional(),oldCommentsLocked:n.z.boolean().optional(),newCommentsLocked:n.z.boolean().optional()}),R={edit_comment:O.extend({logType:n.z.literal("edit_comment")}),delete_comment:O.extend({logType:n.z.literal("delete_comment")}),grant_permission:P.extend({logType:n.z.literal("grant_permission")}),revoke_permission:P.extend({logType:n.z.literal("revoke_permission")}),edit_post:L.extend({logType:n.z.literal("edit_post")}),edit_project_ugc:O.extend({logType:n.z.literal("edit_project_ugc")}),edit_project_mod_flags:T.extend({logType:n.z.literal("edit_project_mod_flags")}),add_editor:B.extend({logType:n.z.literal("add_editor")}),remove_editor:B.extend({logType:n.z.literal("remove_editor")}),edit_project_flags:U.extend({logType:n.z.literal("edit_project_flags")}),edit_user:F.extend({logType:n.z.literal("edit_user")}),"2fa_login_failed":C.extend({logType:n.z.literal("2fa_login_failed")}),"2fa_reset":C.extend({logType:n.z.literal("2fa_reset")}),"2fa_reset_failed":C.extend({logType:n.z.literal("2fa_reset_failed")}),artist_alley_approved:O.extend({logType:n.z.literal("artist_alley_approved"),listingId:o.y1,changedBy:o.Et}),artist_alley_rejected:O.extend({logType:n.z.literal("artist_alley_rejected"),listingId:o.y1,changedBy:o.Et,rejectionReason:n.z.string()}),artist_alley_mod_edited:O.extend({logType:n.z.literal("artist_alley_mod_edited"),listingId:o.y1,changedBy:o.Et})},D=(n.z.discriminatedUnion("logType",[R.edit_comment,R.delete_comment,R.grant_permission,R.revoke_permission,R.edit_post,R.edit_project_ugc,R.add_editor,R.remove_editor]),n.z.enum(["active","past_due","unpaid","canceled","incomplete","incomplete_expired","trialing"]));n.z.object({expirationDate:o.iV,status:D}),n.z.object({defaultAdultContent:n.z.boolean(),editingPost:g.optional(),defaultCws:n.z.string().array(),defaultTags:n.z.string().array()}),n.z.object({projects:n.z.array(n.z.object({project:i.Fx,projectPinned:n.z.boolean(),latestPost:g.nullable()})),nextCursor:n.z.number().nullable()}),n.z.enum(["recently-posted","followed-asc","followed-desc","alpha-asc","alpha-desc"])}}]); //# sourceMappingURL=client-preact-components-pages-moderation-manage-user.fb58775fcf8e529da5a2.js.map