From 58248afcb78a865b4d6688fc985e2780cd02f81d Mon Sep 17 00:00:00 2001 From: Patrick-LuoYu <76198553+Patrick-LuoYu@users.noreply.github.com> Date: Tue, 13 Apr 2021 10:47:51 +0800 Subject: [PATCH] Add doc department-management-en. (#1322) * Add doc department-management-en. Signed-off-by: Patrick-LuoYu * Fix issues. Signed-off-by: Patrick-LuoYu --- .../department-management.md | 81 ++++++++++++++++++ .../department-management/assign.png | Bin 0 -> 8066 bytes .../department-management/edit.png | Bin 0 -> 1929 bytes .../department-management/remove.png | Bin 0 -> 2085 bytes 4 files changed, 81 insertions(+) create mode 100644 content/en/docs/workspace-administration/department-management.md create mode 100644 static/images/docs/workspace-administration/department-management/assign.png create mode 100644 static/images/docs/workspace-administration/department-management/edit.png create mode 100644 static/images/docs/workspace-administration/department-management/remove.png diff --git a/content/en/docs/workspace-administration/department-management.md b/content/en/docs/workspace-administration/department-management.md new file mode 100644 index 000000000..aaf6d8485 --- /dev/null +++ b/content/en/docs/workspace-administration/department-management.md @@ -0,0 +1,81 @@ +--- +title: "Department Management" +keywords: 'KubeSphere, Kubernetes, Department, Role, Permission, Group' +description: 'Create departments in a workspace and assign users to different departments to implement permission control.' +linkTitle: "Department Management" +weight: 9700 +--- + +This document describes how to manage workspace departments. + +A department in a workspace is a logical unit used for permission control. You can set a workspace role, multiple project roles, and multiple DevOps project roles in a department, and assign users to the department to control user permissions in batches. + +## Prerequisites + +- You need to [create a workspace and an account](../../quick-start/create-workspace-and-project/) assigned the `workspace-admin` role in the workspace. This document uses the `demo-ws` workspace and the `ws-admin` account as an example. +- To set project roles or DevOps project roles in a department, you need to [create at least one project or DevOps project](../../quick-start/create-workspace-and-project/) in the workspace. + +## Create a Department + +1. Log in to the KubeSphere web console as `ws-admin` and go to the `demo-ws` workspace. + +2. On the left navigation bar, choose **Department Management** under **Workspace Settings**, and click **Set Department** on the right. + +3. In the **Set Department** dialog box, set the following fields and click **OK** to create a department. + + {{< notice note >}} + + * If a department has already been created in the workspace, you can click **Create Department** to add more departments to the workspace. + + * You can create multiple departments and multiple sub-departments in each department. To create a subdepartment, select a department on the left department tree and click **Create Department** on the right. + + {{}} + + * **Name**: Name of the department. + * **Alias**: Alias of the department. + * **Workspace Role**: Role of all department members in the current workspace. + * **Project Role**: Role of all department members in a project. You can click **Add Project** to specify multiple project roles. Only one role can be specified for each project. + * **DevOps Project Role**: Role of all department members in a DevOps project. You can click **Add DevOps Project** to specify multiple DevOps project roles. Only one role can be specified for each DevOps project. + +4. Click **Close** after the department is created. On the **Department Management** page, the created department is displayed in a department tree on the left. + +## Assign a User to a Department + +1. On the **Department Management** page, select a department in the department tree on the left and click **Unassigned** on the right. + +2. In the unassigned user list, click on the right of a user, and click **OK** for the displayed message to assign the user to the department. + + {{< notice note >}} + + * If permissions provided by the department overlap with existing permissions of the user, new permissions are added to the user. Existing permissions of the user are not affected. + * Users assigned to a department can perform operations according to the workspace role, project roles, and DevOps project roles associated with the department without being invited to the workspace, projects, and DevOps projects. + + {{}} + +## Remove a User from a Department + +1. On the **Department Management** page, select a department in the department tree on the left and click **Assigned** on the right. +2. In the assigned user list, click on the right of a user, enter the username in the displayed dialog box, and click **OK** to remove the user. + +## Delete and Edit a Department + +1. On the **Department Management** page, click **Set Department**. + +2. In the **Set Department** dialog box, on the left, click the upper level of the department to be edited or deleted. + +3. Click on the right of the department to edit it. + + {{< notice note >}} + + For details, see [Create a Department](#create-a-department). + + {{}} + +4. Click on the right of the department, enter the department name in the displayed dialog box, and click **OK** to delete the department. + + {{< notice note >}} + + * If a department contains sub-departments, the sub-departments will also be deleted. + * After a department is deleted, the associated roles will be unbound from the users. + + {{}} \ No newline at end of file diff --git a/static/images/docs/workspace-administration/department-management/assign.png b/static/images/docs/workspace-administration/department-management/assign.png new file mode 100644 index 0000000000000000000000000000000000000000..4f25db88ae7d490945b4bfbfaf77eea1014060f3 GIT binary patch literal 8066 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 Q$N&HU07*qoM6N<$f;I1E!vFvP literal 0 HcmV?d00001 diff --git a/static/images/docs/workspace-administration/department-management/edit.png b/static/images/docs/workspace-administration/department-management/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..bc4dda4727dc2013913b0613b902174424fa1e22 GIT binary patch literal 1929 zcmV;42X^?0P)BE1ZQLxAY_vg;$?V;oX(lt{{G@3qJ`_O^!KmPq;Qw2}Cn0L9?Tam?khm;cmfj@-EE=vY<#k5o0f^m&*sM6pBI0EL{uRZtU4R5Z z`^X8`V)zNfJ8YaF;u6EP09P2E5Ad?jnUOMxUqvh^s*L``+lU9}BlcPZ2XpY-jyyG} zttleQMaed+noc9ry@UIIwng1*#M^^UkFzj+6yF25_LnMhmf?pGpH<}CbcnAmX|u%; z|7E#p3GpKUUAw%6atiT2#A8)^yd3Cssj4^8z$>TJnP(8+gLrkpJj%xIMEtceUz`ec zeo~wa<_{hK;NmJRuzL3+9o0iVC08s$)vACv7|KExH6jmbd4gn8^0FkllzkRT6fd|P0n zrwSVAXrbt(XrcJk;OyVRDf#{Yw^VBW$m{6QFhZvPBk<6w!tZERBfJcLd1$M3&)TehHS09YRtkN(Z(GDi^F2;vKBX;HY+Q*UEnTqUvgh@A9J5aYSek}G;8j! zqp=F+X_rylpF&#LEj%b>g+0Q~5^H*5N-?MwSLAe5T{?GXqX;9WfX;*4pXw6&V*io?m|<6;W0GAb4f<-njQ>$>Q>9MPr@ zwU=n+0I+*9IKpp9{{0u*d8K7@p9VPmCp-6AwmA>rtOL;dXv;Q$XXCx^0IWWyc=l3w zC&Xgk0yx!!!@*Zi8qcdA>-AfBZYACT*nGWS|NH%Vee(m<-vGFv{{#Oecnig2*2@3@ z0BmJgNoGw=04e|g00;mC0U7`W000010000!0UH1X000010000+0Vn_i0000100IC2 zhiL!=000010000^000000001x000010001x0000100N)_00aO40096101%)900aO4 z0096102}}S005hhb@c!M010qNS#tmY79{`x79{~mQY7#I00OB=L_t(I5tUTSZqq;% zy|%}XIB`?@P@y0m8y0Lp0tty7|G#5_#ADGSpruJ0QX0R<=A3bD+9Ykwl_qwqx%ZxP z=G?K;T-VYww5}vhGbzeaE*7!amMyAhuGv;gEoq)hQIwJ-nb^*M7GUC+gCCLrMV95_ zx~d<7s;)$rmE=Vs84z&gr54M!`W0aE_v5MI9|L-UWY2XZ@V(m$urou~wIqO?VpUc1 z>IGvF;R+$`ksp(=$_~)a>rc(}(wEI0(cxEpGVX`BFF*C;?kz*_I^^)E@*MDBOX7 zNryjA4EHQ64E$&~G|A%;o;PVg?xfF-9e3zp!8ks;8u643B+hybm`uklp!no$Zq8g+ z+KBe-5x57wxK1PAS`FwpLeBC+v@V6o%67z6$`s)V&;yLMr%)p4+tG<}TnP^_d3R?M zs{0b6J886WtpK@KRSm_fOUD&b5{3hL|L(0s(NMr$!Kqv9+}+(dE1O(DUanqpe}YueX*B P00000NkvXXu0mjf$%BF@ literal 0 HcmV?d00001 diff --git a/static/images/docs/workspace-administration/department-management/remove.png b/static/images/docs/workspace-administration/department-management/remove.png new file mode 100644 index 0000000000000000000000000000000000000000..483a0097bd1d86bfea3005ef24c677e1bd88547f GIT binary patch literal 2085 zcmV+=2-^3FP)BE1ZQLxAY_vg;$?V;oX(lt{{G@3qJ`_O^!KmPq;Qw2}Cn0L9?Tam?khm;cmfj@-EE=vY<#k5o0f^m&*sM6pBI0EL{uRZtU4R5Z z`^X8`V)zNfJ8YaF;u6EP09P2E5Ad?jnUOMxUqvh^s*L``+lU9}BlcPZ2XpY-jyyG} zttleQMaed+noc9ry@UIIwng1*#M^^UkFzj+6yF25_LnMhmf?pGpH<}CbcnAmX|u%; z|7E#p3GpKUUAw%6atiT2#A8)^yd3Cssj4^8z$>TJnP(8+gLrkpJj%xIMEtceUz`ec zeo~wa<_{hK;NmJRuzL3+9o0iVC08s$)vACv7|KExH6jmbd4gn8^0FkllzkRT6fd|P0n zrwSVAXrbt(XrcJk;OyVRDf#{Yw^VBW$m{6QFhZvPBk<6w!tZERBfJcLd1$M3&)TehHS09YRtkN(Z(GDi^F2;vKBX;HY+Q*UEnTqUvgh@A9J5aYSek}G;8j! zqp=F+X_rylpF&#LEj%b>g+0Q~5^H*5N-?MwSLAe5T{?GXqX;9WfX;*4pXw6&V*io?m|<6;W0GAb4f<-njQ>$>Q>9MPr@ zwU=n+0I+*9IKpp9{{0u*d8K7@p9VPmCp-6AwmA>rtOL;dXv;Q$XXCx^0IWWyc=l3w zC&Xgk0yx!!!@*Zi8qcdA>-AfBZYACT*nGWS|NH%Vee(m<-vGFv{{#Oecnig2*2@3@ z0BmJgNoGw=04e|g00;mC0U7`W000010000!0UH1X000010000+0Vn_i0000100IC2 zhiL!=000010000^000000001x000010001x0000100N)_00aO40096102rVH00aO4 z0096102%-Q008pe&&vP+010qNS#tmY79{`x79{~mQY7#I00TuyL_t(Y4XswYZWBQi zJu^FA+v{ftK}r-MK7xvll9CcpQu0Am)ahtxspz0VqNYgXKmu`WC$`BxICmcF-4KF} zxYq1E_TF>fvsOi36bPi;A{?BbPjK+&Eq;v0I6D4@G)*moF$Vj)_pmh_;@Q(D820-C z!OtFncxJKui7ZR;eLO*)+6k1> zH3fry7cXBt$KLJ^Or90i^5t?#uq7D-kc*cHJ22xwd>DhLi-pLnNI{|1Y%(f23Sz61 z)3ahSyTH5mA27X`V|sZ>i^YBkmr$_o_r25Q-qTEI6`|j0qs#I5(L?mQ9hf+dk+d@G z+}%c!%n?spR{LKS6i#6XPr-epBitEu(4m5M(n6Eirjs<$Xc#=$-@}aV>XB3n!&LZK z_?$2~)*t0FQI>-Cd<=(aM7YoD>b6@L^m>T7H=0_bC`Ti1AZ9fgX5L1~!uf~CD6<^i zg>%_+ZL~og8yegorsAN2z-z09Otw%t2TOzHfv+}~Zn#s?XK^Y_%utm}SpFjsI+O@4 zmLKgcO|ZL-v`N~W)XHdWPp-iTQ_ZnbDbLr?D~%{5V)Y#4^uoWi9P2zP{L;{diPan- zcShNARBRFswttOQp4N_U+X#kSA(p7zdZ4L#tDmsE=mEy-BtNsV=IF9z?<`oh{K2k{j3hQfN^xT;aa4@BKs0!>FF$v?efF z?JeTFl^3>`ukt$sswZwOdW6C(YvKJ9KVR7#*!P7vv&ud