make regenerating api keys enterprise

This commit is contained in:
Ishaan Jaff 2024-08-26 18:53:28 -07:00
parent 83813af0a2
commit b0ae0101f4
3 changed files with 35 additions and 6 deletions

View file

@ -141,6 +141,7 @@ const CreateKeyPage = () => {
<UserDashboard <UserDashboard
userID={userID} userID={userID}
userRole={userRole} userRole={userRole}
premiumUser={premiumUser}
teams={teams} teams={teams}
keys={keys} keys={keys}
setUserRole={setUserRole} setUserRole={setUserRole}
@ -175,6 +176,7 @@ const CreateKeyPage = () => {
<UserDashboard <UserDashboard
userID={userID} userID={userID}
userRole={userRole} userRole={userRole}
premiumUser={premiumUser}
teams={teams} teams={teams}
keys={keys} keys={keys}
setUserRole={setUserRole} setUserRole={setUserRole}

View file

@ -48,6 +48,7 @@ interface UserDashboardProps {
setKeys: React.Dispatch<React.SetStateAction<Object[] | null>>; setKeys: React.Dispatch<React.SetStateAction<Object[] | null>>;
setProxySettings: React.Dispatch<React.SetStateAction<any>>; setProxySettings: React.Dispatch<React.SetStateAction<any>>;
proxySettings: any; proxySettings: any;
premiumUser: boolean;
} }
type TeamInterface = { type TeamInterface = {
@ -68,6 +69,7 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
setKeys, setKeys,
setProxySettings, setProxySettings,
proxySettings, proxySettings,
premiumUser,
}) => { }) => {
const [userSpendData, setUserSpendData] = useState<UserSpendData | null>( const [userSpendData, setUserSpendData] = useState<UserSpendData | null>(
null null
@ -328,6 +330,7 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
selectedTeam={selectedTeam ? selectedTeam : null} selectedTeam={selectedTeam ? selectedTeam : null}
data={keys} data={keys}
setData={setKeys} setData={setKeys}
premiumUser={premiumUser}
teams={teams} teams={teams}
/> />
<CreateKey <CreateKey

View file

@ -69,6 +69,7 @@ interface ViewKeyTableProps {
data: any[] | null; data: any[] | null;
setData: React.Dispatch<React.SetStateAction<any[] | null>>; setData: React.Dispatch<React.SetStateAction<any[] | null>>;
teams: any[] | null; teams: any[] | null;
premiumUser: boolean;
} }
interface ItemData { interface ItemData {
@ -96,7 +97,8 @@ const ViewKeyTable: React.FC<ViewKeyTableProps> = ({
selectedTeam, selectedTeam,
data, data,
setData, setData,
teams teams,
premiumUser
}) => { }) => {
const [isButtonClicked, setIsButtonClicked] = useState(false); const [isButtonClicked, setIsButtonClicked] = useState(false);
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
@ -619,6 +621,11 @@ const ViewKeyTable: React.FC<ViewKeyTableProps> = ({
}; };
const handleRegenerateKey = async () => { const handleRegenerateKey = async () => {
if (!premiumUser) {
message.error("Regenerate API Key is an Enterprise feature. Please upgrade to use this feature.");
return;
}
try { try {
if (selectedToken == null) { if (selectedToken == null) {
message.error("Please select a key to regenerate"); message.error("Please select a key to regenerate");
@ -994,14 +1001,31 @@ const ViewKeyTable: React.FC<ViewKeyTableProps> = ({
<Button key="cancel" onClick={() => setRegenerateDialogVisible(false)} className="mr-2"> <Button key="cancel" onClick={() => setRegenerateDialogVisible(false)} className="mr-2">
Cancel Cancel
</Button>, </Button>,
<Button key="regenerate" onClick={handleRegenerateKey}> <Button
Regenerate key="regenerate"
onClick={handleRegenerateKey}
disabled={!premiumUser}
>
{premiumUser ? "Regenerate" : "Upgrade to Regenerate"}
</Button> </Button>
]} ]}
> >
{premiumUser ? (
<>
<p>Are you sure you want to regenerate this key?</p> <p>Are you sure you want to regenerate this key?</p>
<p>Key Alias:</p> <p>Key Alias:</p>
<pre>{selectedToken?.key_alias || 'No alias set'}</pre> <pre>{selectedToken?.key_alias || 'No alias set'}</pre>
</>
) : (
<div>
<p className="mb-2 text-gray-500 italic text-[12px]">Upgrade to use this feature</p>
<Button variant="primary" className="mb-2">
<a href="https://calendly.com/d/4mp-gd3-k5k/litellm-1-1-onboarding-chat" target="_blank">
Get Free Trial
</a>
</Button>
</div>
)}
</Modal> </Modal>
{/* Regenerated Key Display Modal */} {/* Regenerated Key Display Modal */}